nginx->;php5-fpm:php中的错误未记录(任何位置!)


nginx -> php5-fpm: Error in php not logged (anywhere!)

我正试图在EC2服务器上设置phpbb。经过一个小时左右的绝望,我发现phpbb启动中有一行失败了:

$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, defined('PHPBB_DB_NEW_LINK') ? PHPBB_DB_NEW_LINK : false);

简单修复,我需要正确配置我的数据库属性。

然而,为了发现我不得不在php应用程序的前几个文件中逐块插入echo'1'语句。在使用echo语句之前,当php出错时,我只得到一个状态为200的空白页。

我已经在FPM的php.ini中打开了log_errors和display_errors,但显然它们对这种特定类型的错误没有任何作用。

/var/log/syslog、/var/log/nginx/*、/var/log/php-fpm.log或nginx站点的错误日志中没有关于该错误的日志。

所以,我的问题是:为什么实际的错误(来自sql_connect)没有记录在任何地方?(或者,如果正在记录,在哪里?)

在您的池中搜索catch_workers_output并将其设置为yes,来自doc:

 catch_workers_output - Redirect workers' stdout and stderr into main error log. If not set, they will be redirected to /dev/null, according to FastCGI specs. Values "yes" or "no" 

编辑

还要检查你有

php_flag[display_errors] = on

和/或

php_admin_flag[log_errors] = true

我今天遇到了类似的问题。我发现日志文件的权限不正确。所有权已分配给root。我做了一个chmod 777 php5-fpm.log来确认这就是问题所在。日志记录在那之后起了作用。

我做了一个chown syslog:adm php5-fpm.log来设置正确的所有权。