Я пытаюсь выполнить /path/to/script.pl
в PHP; сценарий, между прочим, отправляет электронное письмо, когда оно выполняется. Когда я пытаюсьPHP exec() работает странно
exec("/path/to/script.pl");
Ничего не происходит. Некоторые другие соответствующие точки данных:
print exec("whoami");
/path/to/script.pl
sudo -u apache /path/to/script.pl
Первый работает в PHP, печатает apache
; второй, запускаемый в оболочке, работает как ожидалось (отправляет электронное письмо); третий, запущенный в оболочке, также работает как ожидалось (отправляет электронное письмо).
От этого кажется, что exec
отлично работает для некоторых команд, и что скрипт работает и работает для пользователя httpd
(apache
). Сам сценарий не выполняет ввода-вывода файлов, но он имеет доступ к базе данных MySQL и использует Net::SMTP::TLS
, а также LWP::Simple
. Любые идеи, что может пойти не так?
Является ли ваш скрипт установленным пользователем apache? –
Да, это 'chmod 755'; Я также думал, что 'sudo -u apache/path/to/script.pl' будет дважды проверять, что это неправильно? – kyle
Weird ... попробуйте использовать этот файл для пользователя apache ... Я использую команды popen и pclose, и он отлично работает. Вы пытались проверить ваш журнал php на наличие ошибок? Не забудьте активировать регистрацию ошибок php. –