Unix `at` команда через PHP - PullRequest
       21

Unix `at` команда через PHP

1 голос
/ 13 сентября 2011

Вот мой код для создания новой at работы ...
system('echo \'php -f /path/to/my/php/file.php\' | at 1700');

Я думал, что это будет просто и будет просто работать, но, увы, ничего не происходит!

Когда я запускаю echo \'php -f /path/to/my/php/file.php\' | at 1700 через ssh, все работает как положено.

Это проблема с разрешениями?Т.е. PHP не разрешает создавать новые at задания?

1 Ответ

1 голос
/ 13 сентября 2011

К вашему сведению, вы должны убедиться, что вам разрешено выполнять системные команды из ваших PHP-скриптов.

На многих серверах эта функция отключена.

Однако, если вы хотите включить это снова, я думаю, что вы можете сделать это в файле php.ini, вам придется отключить safe_mode.

При разрешении передачи пользовательских данных в эту функцию используйте escapeshellarg () или escapeshellcmd (), чтобы гарантировать, что пользователи не смогут заставить систему выполнять произвольные команды.

Если программа запускается с этой функцией, чтобы она продолжала работать в фоновом режиме, выходные данные программы должны быть перенаправлены в файл или другой поток вывода. В противном случае PHP будет зависать до тех пор, пока не завершится выполнение программы.

Примечание. Когда включен безопасный режим, вы можете запускать файлы только в пределах safe_mode_exec_dir. По практическим причинам в настоящее время запрещено иметь .. компоненты в пути к исполняемому файлу.

...