заметки на полях

Блокнот разработчика

Вывод ошибок PHP в логи nginx

После того как не осталось Apache, то и негде посмотреть ошибки PHP привычным способом (в логах Апача); сделаем что бы nginx вел лог ошибок PHP. nginx перехватывает то, что ему пришло от php-fastcgi на stderr и пишет это в лог, предваряя примерно следующим:

2009/08/10 22:54:38 [error] 11004#0: *7 FastCGI sent in stderr:

Теперь же осталось только отдавать эти самые ошибки и предупреждения из PHP на stderr, для этого надо немного подправить конфиг /etc/php5/cgi/php.ini:

; лишним здесь ничего не будет :) пусть пишет все!
error_reporting  =  E_ALL

; первый параметр отвечает как раз за отдаду ошибок на фронтэед
display_errors = "stderr"
;
; stdout (On) - Display errors to STDOUT
; здесь же ошибки будут выводиться на экран, для сервера разработки -
; это оптимальный вариант, а вот на боевом их все таки лучше отключить
display_errors = On
; Ну и последняя опция, что бы PHP все таки
; писал ошибки в лог (в нашем случае отдавал на stderr)
log_errors = On

Готово! Осталось только перезапустить php-cgi:

sudo /etc/init.d/init-fastcgi restart

Tags: , , ,

Leave a Reply