2017-01-17 7 views
4

私はこの数時間で私を夢中にさせる問題があります。開発マシン(Debian 8 + php-fpm 5.6.29 + Nginx/1.6.2)のerror_reportingディレクティブのデフォルト値を上書きすることはできませんPHP-FPMはerror_reportingを上書きできませんか?

私が使用しているPHPパッケージ:

$ dpkg --get-selections | grep php 
libapache2-mod-php5    install 
php-console-table    install 
php5      install 
php5-cli     install 
php5-common     install 
php5-curl     install 
php5-fpm     install 
php5-gd      install 
php5-intl     install 
php5-json     install 
php5-mcrypt     install 
php5-mysql     install 
php5-readline     install 
php5-xmlrpc     install 
php5-xsl     install 

を以下のデッド単純なスクリプト考える:私は、CLIから実行した場合、それが動作

<?php 
$initial_value = error_reporting(); // Just read the current value 

error_reporting(E_PARSE); // Lets set it to something else. 

$update_value = error_reporting(); // Read again. 

printf(
    "Initial value: %s\nFinal value: %s", 
    $initial_value, 
    $update_value 
); 

を:

$ php test.php 
// output: Initial value: 22527 Final value: 4 

しかし、私はPHP5-FPMの下でこれを実行した場合、出力は次のようになります。

Initial value: 32767 Final value: 32767 

私が試したもの:

  • php.ini内の値を設定(およびすべてのphp.iniのチェックファイルはphpinfo();に記載されています)
  • イムerror_reporting(E_PARSE)ini_set('error_reporting', E_PARSE);との両方を試してみました.user.ini fiels(2回確認)
  • を使用していません。これらの指令はiniファイルを上書きする必要があります。
  • 私は、再起動のphp5-FPMプロセスをしたのiniファイルへのすべての編集後もちろん

(もを停止してから再起動/リロードするのではなく、起動しようとした)

奇妙なことは、私は実際に他のパラメータをオーバーライドすることができということです(たとえば、display_errorsは、iniファイルとini_setコールの両方から機能します)。

これまでのところ私は何が欠けていますか?

+0

私はこれをphp7-fpmで実行しました。おそらくphp5-fpmのバグ? – apokryfos

+1

@apokryfos dunno、私は何年もの間、php5 + fpmを使ってきました。これは私に起こる初めてのことです! p.s: 'php7へのアップグレード 'のようなものを言ってはいけません。出来たらやる! – Strae

+0

最近PHPのバージョンを5.6.X-1から5.6.Xにアップグレードした場合、それが修正されているかどうか再確認する価値があるかもしれません。そうでなければ、もっと微妙なことが起こっているかもしれません。 – apokryfos

答えて

0

php_admin_valueのようなにおいがします。確認のためのあなたのfpm/php.inifpm/pool.d/*またはfpm/conf.d/*

php_admin_value[error_reporting] = E_ALL 

それは非上書き可能だとあなたが説明したのと同じ出力を生成します。また、nginxの設定から設定することができます:

fastcgi_param PHP_ADMIN_VALUE ... 
関連する問題