Команда php exec () не может запустить скрипт php на сервере - PullRequest
0 голосов
/ 18 января 2019

У меня есть следующая команда в php-скрипте, который выполняется после нажатия кнопки на моем веб-сайте:

exec('nohup php /var/www/website.org.uk/myScript.php >> /var/www/website.org.uk/shared/storage/logs/myLog.log 2>&1 & echo $! > /var/www/website.org.uk/pid.txt');

В идеале на моем сервере он должен выполнить myScript.php, отправить любой вывод из скрипта на myLog.log и сохранить pid процесса myScript.php на pid.txt.

myScript.php:

<?php
print "\nStarting dummy script\n";
sleep(10); // Sleep for 10 seconds.
print "\nFinished dummy script\n";

Если я захожу на сервер и запускаю команду вручную, все работает нормально. Однако при запуске с веб-сайта pid записывается в файл pid.txt, но скрипт php завершается неудачно. В журнал ничего не записывается, и я не вижу процесса, выполняющегося на сервере при использовании команды ps (я должен видеть, что он работает не менее 10 секунд из-за команды sleep).

После прочтения предыдущих сообщений о переполнении стека я изменил разрешения для всех трех файлов на -rwxr-x--- и обновил группу до www-data, но это не имело никакого значения.

Я что-то здесь упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...