nginx -> php5-fpm: Ошибка в php не логируется (нигде!)

Я пытаюсь настроить phpbb на сервере EC2. После часа или около того отчаяния я обнаружил, что определенная строка в запуске phpbb не работает:

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

Простое исправление, мне нужно правильно настроить свойства моей БД.

Однако, чтобы обнаружить это, мне пришлось вставлять операторы echo '1' блок за блоком в первые пару файлов приложения php. До эхо-операторов я получал только пустую страницу со статусом 200, когда php выдавал ошибку.

Я включил как log_errors, так и display_errors в php.ini FPM, но, по-видимому, они ничего не делают с этим конкретным типом ошибок.

Нет логов об ошибке в /var/log/syslog, /var/log/nginx/*, /var/log/php-fpm.log или лога ошибок для сайта nginx.

Итак, мой вопрос: почему фактическая ошибка (из sql_connect) нигде не регистрируется? (В качестве альтернативы, если он регистрируется, где?)


person user717847    schedule 14.07.2013    source источник
comment
Вы перезапускали и php-fpm, и nginx после редактирования конфигураций?   -  person John WH Smith    schedule 15.07.2013
comment
@JohnWHS Да, я постоянно перезапускал их после внесения правок.   -  person user717847    schedule 15.07.2013
comment
вы проверили настройки error_log внутри /etc/php5/fpm/php-fpm.conf ? может быть изменен с пути по умолчанию, вы сказали, что ваш журнал ошибок был php-fpm.log, а мой на самом деле php5-fpm.log   -  person Mohammad AbuShady    schedule 15.07.2013
comment
@MohammadAbuShady спасибо - да, я пытался оставить их по умолчанию (закомментировано) и установить для них определенное имя файла. Ни один не работал до сих пор   -  person user717847    schedule 15.07.2013
comment
Какая версия phpbb и какой это файл? Вполне возможно, что ошибки подавляются.   -  person Melvyn    schedule 16.07.2013
comment
@Melvyn 3.11 и common.php.   -  person user717847    schedule 16.07.2013
comment
Возможный дубликат stackoverflow.com/questions/8677493/ (есть больше ответов).   -  person Justin    schedule 22.01.2014


Ответы (2)


найдите catch_workers_output в своем пуле и установите для него значение yes из документа:

 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
person DRC    schedule 14.07.2013
comment
Вау, это тупой дефолт. Спасибо - это неизбежно было частью проблемы (и / или позже сбило бы меня с толку). Однако радости все еще нет (после перезапуска). - person user717847; 15.07.2013
comment
спасибо, правка тоже ничего не изменила. Я не понимаю, зачем нужна правка, предполагая, что log_errors включен в php.ini, но в любом случае установка этого журнала никуда не привела. Я также должен упомянуть, что если я включу display_errors, эта конкретная ошибка также не будет отображаться — я думаю, это согласуется с ошибкой, возникающей в конкретном воркере и неправильно маршрутизируемой. - person user717847; 15.07.2013
comment
В строке 100 файла common.php есть код: set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler'); Если я прокомментирую это, trigger_error появится до того, как появится оператор sql connect. Ошибка подключения sql по-прежнему нигде не отображается. - person user717847; 20.07.2013
comment
phpbb имеет свои собственные функции обработки ошибок, из документа где-то я читал. Журнал ошибок создается автоматически внутри каталога /store/ и будет называться php_error.log , проверьте там или попробуйте установить DEBUG True в вашем config.php. - person DRC; 20.07.2013

У меня была аналогичная проблема сегодня. Я обнаружил, что разрешения для моего файла журнала были неверными. Право собственности было присвоено root. Я сделал chmod 777 php5-fpm.log, чтобы подтвердить, что проблема именно в этом. Логирование заработало после этого.

Я сделал chown syslog:adm php5-fpm.log, чтобы установить правильное право собственности.

person Mark    schedule 18.04.2014