Вывод ошибок 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
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