Nginx+PHP+PHP-FPMでPHPのエラーメッセージを表示させる

開発中のシステムでエラーメッセージをいちいちログ見て確認するのは大変なので表示させる。
設定できそうな箇所は3つある(nginx.conf,php-fpm.ini,phpのini_set())。

結論

php_flag[display_errors] = on
php_admin_value[error_reporting] = E_ALL // この辺は適宜お好み

して

service php-fpm restart
service nginx restart
  • php.iniの記述はphp-fpm.confで上書きされてるから無視でいい
  • phpスクリプトからini_setなどで設定Onにできない(E_WARNING)は出る

説明

php.iniの設定

変更しなくていい。

php-fpm.confの設定

php_flag[display_errors] = on
php_admin_value[error_reporting] = E_ALL // この辺は適宜お好み

あれこれ

php.iniでdisplay_errors = Onとした時にphp-fpm.confでphp_flag[display_errors] = offとすると表示はオフになったので php-fpm.confだけ編集すれば良いと思う。

またphp_flag[display_errors] = offの時にPHPスクリプト内で

error_reporting(E_ALL);
ini_set('display_errors', 1);

のように記述しても(E_PARSE|E_ERROR)等は表示されない。nginxでエラーがキャッチされてしまっているからだと思う。php_flag[display_errors] = offでもE_WARNINGについては正しく表示された。

fastcgi_intercept_errors

これはphp_flag[display_errors] = offの時にしか役に立たない模様

以上

対応環境

nginx/1.19.4
PHP 7.3.26

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール