それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php-fpm で php.iniの設定渡す/display_errorsなどをPHP_VALUEで設定する。

PHP_FLAGを使いたい。

apache の mod_phpapachefcgiなら簡単にできるんだけど、nginxだとfcgiでどうやって 初期設定を渡したら良いんだろうか。

こうすれば出来る。

fastcgi_param PHP_FLAG "display_errors=on \n display_startup_errors=on";
fastcgi_param PHP_VALUE "error_reporting=-1";

php をfpm で設定するときに、在るサイトだけ display_errors をオンにしたいとか在るんですよ。

日本語でググっても php-fpm.ini のグローバル設定を変えろ的な記事しかなかったので、アレコレ調べた。

サイトごとにエラー設定を変える。

トラブルが出ているサイトを一時的にdisplay_errors して見てみるとか。

デプロイ時だけエラーになってなんだコレ??ってphpのエラーを追いかけるときかに便利。

サイトごとのエラーログが便利。

fastcgi_param PHP_VALUE  "error_log=/var/log/nginx/my-site.error.log"

複数書きたいときは改行

改行で書くのが楽でいいよ。スペース区切りはダメ。

    fastcgi_param   PHP_VALUE "
        display_errors=on
        display_startup_errors=on
        error_reporting=E_ALL
        error_log=/var/log/nginx/comic-viewer.error.log";

または Name=Value\nName=Value にする.

だめな例

  fastcgi_param   PHP_VALUE "display_errors=on";
  fastcgi_param   PHP_VALUE "display_startup_errors=on";

PHP_VALUE は1つしか取ってくれない。 (そのうちに、nginxやphp-fpmのバージョンアップで解決するんじゃないかな。

ただし再起動が必要

 sudo systemctl restart  nginx php7.0-fpm

fpm の再起動をすると設定が反映される。再起動をしなくてもキャッシュが消えたら反映されると思うけど、php-fpmのキャッシュ機構は多分複雑だろうから追いかけ用途思っても時間が足りなくて出来てない。

前の記事

nginx + php-fpm で display_startup_erros=on にしてシンタックスエラーを表示する。 - それマグで!

PHP