それマグで!

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

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

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

nginx と php の連携をしてphpシンタックスエラーを表示する

php-fpm 側の設定をしてしまうと、サイトごとやファイルごとに設定できないので、困ってた。

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    include snippets/fastcgi-php.conf;
    fastcgi_param   PHP_VALUE "display_errors=on
        display_startup_errors=on
        error_reporting = E_ALL
        error_log = /var/log/nginx/foo-bar.error.log
    ";
}

順番を逆にすると動かない。。。

fastcgi_pass が逆になると動かない。なんでや

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_param   PHP_VALUE "display_errors=on
        display_startup_errors=on
        error_reporting = E_ALL
        error_log = /var/log/nginx/foo-bar.error.log
    ";
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

passより前に書かないと設定が有効にならない。何だこれハマるぞ。

今回、表示されなくてハマった動作環境はコレ。もしかしたらubuntu / debian のinclude の書き方と関係あるのかな~。

PHP Version  7.0.25-0ubuntu0.16.04.1
nginx version: nginx/1.10.3 (Ubuntu)