5

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?)

user717847
  • 695
  • 1
  • 6
  • 16

2 Answers2

5

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
DRC
  • 4,898
  • 2
  • 21
  • 35
  • 1
    Wow that's a dumb default. Thanks - that was inevitably part of the issue (and/or would have tripped me up later.) However, still no joy (after restarting). – user717847 Jul 14 '13 at 23:45
  • thanks, the edit made no difference either. I don't understand why the edit is necessary assuming that log_errors is turned on in php.ini, but in any case setting it didn't yield the log anywhere. I should also mention that if I turn display_errors on, this particular error doesn't get displayed either -- I guess that's consistent with the error occurring in a particular worker and not being routed correctly. – user717847 Jul 15 '13 at 11:02
  • On line 100 of common.php is the code: set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler'); If I comment that out, trigger_error before the sql connect statement shows up. The sql connect error still does not show up anywhere. – user717847 Jul 20 '13 at 12:29
  • phpbb has its own error handling features, from the doc somewhere I read "The Error Log is created automatically inside the /store/ directory, and will be called php_error.log ", check there or try to set DEBUG True in your config.php. – DRC Jul 20 '13 at 14:40
1

I had a similar problem today. What I discovered is that the permissions for my log file were incorrect. Ownership was assigned to root. I did a chmod 777 php5-fpm.log to confirm that was the issue and it was. Logging worked after that.

I did a chown syslog:adm php5-fpm.log to set the correct ownership.

Mark
  • 765
  • 8
  • 12