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

user717847 picture user717847 · Jul 15, 2013 · Viewed 7.4k times · Source

I am attempting to set up phpbb on an EC2 server. After an hour or so of despair I found that a particular line in the phpbb startup is failing:

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

Easy fix, I need to configure my DB properties properly.

However, to find that I had to insert echo '1' statements block by block throughout the first couple files of the php app. Prior to the echo statements, I'd get just a blank page, with status 200, when php errored out.

I've turned on both log_errors and display_errors in FPM's php.ini, but apparently they don't do anything with this particular type of error.

There are no logs about the error in /var/log/syslog, /var/log/nginx/*, /var/log/php-fpm.log, or the error log for the nginx site.

So, my question: why is the actual error (from sql_connect) not being logged anywhere? (Alternately, if it is being logged, where?)

Answer

DRC picture DRC · Jul 15, 2013

search for catch_workers_output in your pool and set it to yes, from the 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" 

EDIT:

also check you have

php_flag[display_errors] = on

and/or

php_admin_flag[log_errors] = true