Я устанавливаю новый веб-сервер. У меня есть NGINX с php-fpm на ubuntu 16.04. Все работает отлично, кроме одного: через 2-3 дня корректной работы PHP не может запустить никакую внешнюю системную команду. Что я имею в виду, когда говорю «системная команда»? Например, когда я запускаю функцию shell_exec с аргументом whoami
эхо shell_exec ('whoami');
я получаю следующее
Предупреждение: shell_exec (): невозможно выполнить whoami
И это происходит для каждой команды Linux, которую пытается выполнить скрипт php.
Когда я пытаюсь отправить почту с помощью функции mail (), я получаю аналогичную ошибку
Предупреждение: mail (): не удалось запустить программу доставки почты '/ usr / sbin / sendmail -t -i'
Это происходит только когда я запускаю PHP-скрипт из браузера. Если я попытаюсь запустить его с терминала вот так
sudo -u www-data php /path/to/my/script.php
тогда все работает нормально.
Опять же: проблема появляется только через некоторое время корректной работы и исчезает (на некоторое время) после перезапуска VDS. Он появляется только тогда, когда я запускаю скрипт из браузера, это означает, что он обслуживается NGINX.
Пожалуйста, помогите найти решение моей проблемы.
P.S Logs: журналы ошибок PHP
[27-Aug-2016 04:19:37 Europe/Moscow] PHP Fatal error: Uncaught Error: Call to a member function is_logged() on null in /home/serv/www/templates/page_parts/header_tpl.php:6
Stack trace:
#0 /home/serv/www/templates/index_tpl.php(9): require()
#1 /home/serv/www/php_classes/templater_class.php(116): include('/home/serv/www/...')
#2 /home/serv/www/functions.php(827): templater->load_template()
#3 /home/serv/www/functions.php(804): error_wrong_csrf()
#4 /home/serv/www/index.php(16): csrf_check_post('1b46edd81f1563a...')
#5 {main}
thrown in /home/serv/www/templates/page_parts/header_tpl.php on line 6
[27-Aug-2016 04:19:48 Europe/Moscow] PHP Warning: mail(): Could not execute mail delivery program '/usr/sbin/sendmail -t -i ' in /home/serv/www/php_classes/mail_class.php on line 84
[27-Aug-2016 04:27:42 Europe/Moscow] PHP Warning: shell_exec(): Unable to execute 'whoami' in /home/serv/www/test_mail.php on line 29
Системный журнал:
Aug 27 04:39:01 frankfurt CRON[30551]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Aug 27 04:39:01 frankfurt CRON[30552]: (root) CMD ( test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
в php7.0-fpm.log ничего с сегодняшнего дня нет