Unix `at` команда через PHP
Вот мой код для создания нового 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 ответ
Просто к вашему сведению, вы должны убедиться, что вам разрешено выполнять системные команды из ваших PHP-скриптов.
На многих серверах эта функция отключена.
Однако, если вы хотите включить это снова, я думаю, что вы можете сделать это в файле php.ini, вам придется отключить safe_mode.
При разрешении передачи пользовательских данных в эту функцию используйте escapeshellarg() или escapeshellcmd(), чтобы гарантировать, что пользователи не смогут обмануть систему в выполнении произвольных команд.
Если программа запускается с этой функцией, чтобы она продолжала работать в фоновом режиме, выходные данные программы должны быть перенаправлены в файл или другой поток вывода. В противном случае PHP будет зависать до тех пор, пока не закончится выполнение программы.
Примечание. Когда включен безопасный режим, вы можете запускать файлы только в пределах safe_mode_exec_dir. По практическим причинам в настоящее время запрещено иметь.. компоненты на пути к исполняемому файлу.