PHP Запустить скрипт bash из файла php, который ведет себя странно

Я написал bash-скрипт, который запускает браузер на xServer и делает скриншоты браузеров. Если я запускаю его с пользователем apache2 (www-data), он работает безупречно, даже когда я использую интерактивную оболочку php и запускаю его через shell_exec или exec, он работает отлично. Однако, когда я запускаю его из своего php-файла через браузер, он не работает должным образом. Сценарий, похоже, не запускает команду xterm (для запуска браузера) и не делает скриншоты, он только выполняет команды сна и уничтожения. Я провел целый день в поисках решения или, по крайней мере, правильного способа отладки, но, похоже, ничего не нашел.


person user1685565    schedule 27.01.2014    source источник
comment
Вы добавили error_reporting(E_ALL); ini_set('display_errors', '1'); в скрипт PHP для его отладки?   -  person Jake N    schedule 28.01.2014
comment
Я сомневаюсь, что это поможет, потому что скрипт выполняется, я вижу, как он работает в списке процессов, поэтому я думаю, что php не будет показывать никаких ошибок. Сценарий просто кажется выполненным неправильно или что-то в этом роде.   -  person user1685565    schedule 28.01.2014
comment
Какую команду вы запускаете из CLI?   -  person Jake N    schedule 28.01.2014
comment
команда shell_exec('bash /home/daemon/daemon.sh > /dev/null &'); Я пробовал разные команды, такие как exec() или даже скрипт запуска bash, который запускает daemon.sh в фоновом режиме, но ничего не работает   -  person user1685565    schedule 28.01.2014


Ответы (1)


Включите ошибки для начала

error_reporting(E_ALL);
ini_set('display_errors', '1');

Затем измените команду на

shell_exec('bash /home/daemon/daemon.sh');

Последняя часть вашей команды направляет весь вывод (включая ошибки) в /dev/null — например, туда, где вы вообще не увидите никаких ошибок.

Сделайте это и повторно запустите команду, и вы должны увидеть ошибки.

person Jake N    schedule 28.01.2014
comment
Я просто получаю пустую страницу. Когда я повторяю команду shell_exec, я вижу только все мои эхо моего скрипта bash, но все же не какие-либо ошибки, которые он производит - person user1685565; 29.01.2014