正常运行一段时间后,PHP 无法执行任何系统命令

正常运行一段时间后,PHP 无法执行任何系统命令

我正在设置一个新的 Web 服务器。我在 ubuntu 16.04 上安装了 NGINX 和 php-fpm。除了一件事之外,一切都运行良好:经过 2-3 天的正确运行,PHP 无法运行任何外部系统命令。我说的“系统命令”是什么意思?例如,当我使用参数“whoami”运行函数 shell_exec 时

echo shell_exec('whoami');

我得到以下

警告:shell_exec():无法执行“whoami”

php 脚本尝试执行的每个 Linux 命令都会发生这种情况

当我尝试使用 mail() 函数发送邮件时,我收到类似的错误

警告:mail():无法执行邮件传送程序“/usr/sbin/sendmail -t -i”

仅当我从浏览器运行 PHP 脚本时才会发生这种情况。如果我尝试从终端运行它,如下所示

sudo -u www-data php /path/to/my/script.php

那么一切正常。

再次强调:该问题仅在正常运行一段时间后出现,并在 VDS 重启后消失(一段时间)。它仅在我从浏览器运行脚本时出现,这意味着它由 NGINX 提供服务。

请帮助我找到解决问题的方法。

PS 日志: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 中没有任何今天的记录

相关内容