Ben tarih video dönüşümleri çalıştırmak için benim sunucu bir cron ile çağrıldığını olan bir PHP komut dosyası var. Bazı videolar için çalışıyor, ama görüntü (örneğin 21MB) biraz daha büyük olduğu zaman ben bir 500 Internal Server Error
ve başka hiçbir çıktı alabilirsiniz.
Ben bu sorunun yüzden set_time_limit(9000)
ekledim zaman aşımları nedeniyle oldu ve ayrıca ini_set('max_execution_time', 9000)
Bunu önlemek için, ama bu hiçbir şey çözmez mümkün olduğunu düşünüyorum.
Ben kullanarak ffmpeg yürütmek:
$cmdOut = shell_exec ('ffmpeg -y -i [....] 2>&1'); // [....] is the rest of the command, it works fine with other videos, so i assume that it works ok.
echo print_r($cmdOut);
Ancak hiçbir çıkış ve aşağıdaki satırları yürütülmez, bu nedenle shell_exec
komut iptal edilir sonra.
Apache error_log bakarak ben bu satırı görebilirsiniz:
[Wed Jan 12 00:12:46 2011] [error] [client xx.xxx.xxx.xxx] Premature end of script headers: index.php
Ama başka ipuçları vardır. Herkes bana yardımcı olabilir misiniz?
Test amaçlı bu PHP komut dosyası oluşturduk:
<?php
set_time_limit(300);
sleep(120);
echo "SLEEP OUT";
?>
Benim web tarayıcı onu çağırdığınızda Bu script "500 Internal Server Error" hatası neden olur, bu yüzden set_time_limit çalışmadığını varsayalım. I uyku (30) koyarsanız çalıştığını ve bunun OUT metin SLEEP'e döndürür. Peki soru nasıl i tamamlamak için 5 veya 10 dakika alıyor bir PHP komut dosyası çalıştırmak için zaman aşımı hata önleyebilirsiniz olduğunu?
NOT: Sunucu CentOS FastCGI modül olarak apache ve php çalışıyor.