У меня проблема с командой exec в php. Я пытаюсь запустить пакет (ffmpeg.exe) с помощью команды exec в php, но мой скрипт php успешно запускается на альтернативных запусках, т.е. первый запуск в порядке, второй запуск выдает внутреннюю ошибку сервера 500, затем третий запуск успешен, но четвертый запуск дает мне та же ошибка. Я схожу с ума по этому поводу, но я не могу выяснить, если это ошибка fastCGI или php ошибка.
Детали моего окружения: ОС — Windows 7 Home Premium, пакет обновления 1; IIS версия 7.5.7600; php версия 5.3.28
Мой скрипт php очень тривиален:
echo "hello";
echo '</br>';
$cmd_to_execute = 'ffmpeg.exe -f concat -i list.txt -c copy output.mp4 -y';
echo $cmd_to_execute;
echo '</br>';
$f = exec($cmd_to_execute,$a,$b);
var_dump($a);
var_dump($b);
var_dump($f);
echo "finished";
? >
когда он работает успешно: вывод, который он генерирует:
hello
ffmpeg.exe -f concat -i list.txt -c copy output.mp4 -y
array(0) { } int(0) string(0) "" finished
При сбое на странице отображается следующая информация:
Module FastCgiModule
Notification ExecuteRequestHandler
Handler PHP53_via_FastCGI
Error Code 0x800703e3
Это происходит альтернативно — все нечетные прогоны успешны, и все четные прогоны дают ошибку. Я также пытался запустить ту же команду в командной строке, и она каждый раз запускается успешно. Пожалуйста помоги.
Старый вопрос, который я знаю, но у меня были точно такие же проблемы с PHP-скриптом, который каждый раз заканчивался ошибкой при использовании exec (). Это также вызывало проблемы для других очень простых скриптов php, которые никогда не имели проблем в прошлом.
Я запускал пакетный скрипт, в конце которого была «пауза». Как только я убрал паузу из .bat, мой php-скрипт запускается каждый раз. Так что может показаться, что процесс php закрывается не полностью, хотя он, по-видимому, завершается нормально. Затем необходимо выполнить еще один запуск, чтобы сбросить процесс ..?
В любом случае, если у кого-то есть эта проблема, посмотрите, как заканчивается первый (успешный) процесс.
Других решений пока нет …