2012-12-18 7 views
19

php5-fpmでnginxを実行していて、display_errorsを有効にしたいとします。 私は仮想ホストを実行していますので、display_errorsdisplay_startup_errorsを有効にする方法を助けてください。php5-fpmのdisplay_errorsがnginxと連携しない

/etc/php5/fpm/php.iniを修正しようとしました。

;display_errors 
Default Value: On 
Development Value: On 
;Production Value: Off 
;display_startup_errors 
Default Value: On 
Development Value: On 
;Production Value: Off 
;error_reporting 
Default Value: E_ALL 
Development Value: E_ALL 
;Production Value: E_ALL & ~E_DEPRECATED 
;html_errors 
Default Value: On 
Development Value: On 
;Production value: Off 
;log_errors 
Default Value: On 
Development Value: On 
;Production Value: On 

が、それはそれぞれ異なる仮想ホストに対して複数のiniファイルを持つことが必要です、バーチャルホストは、PHPの設定のための任意の違いはありませんか?

私もset_ini()を試していますが、効果がありません。 php.iniファイルを変更した後、nginxとphp5-fpmを再起動しました。

+0

あなたのphp.iniのphpinfo()出力を確認してください。phpのini値は、 "追加のini(dir)ファイル"、php-fpm.confファイル、.user.iniファイル、およびコース内で実行されたPHPスクリプトファイル – Cybot

答えて

37

php.iniはphp-fpmに対して何もしません。

php-fpmを使用している場合: Webアプリケーションに関連付けられたfpmpool configに設定変更を提供する必要があります。これらの場所は、システムによって異なります。おそらく場所は次のとおりです。

  • /etc/php-fpm.d/mydomain.conf(物事がきちんと設定されている場合)
  • /etc/php-fpm.conf(あなたが唯一のPHP-FPMのための1つのconfを使用している場合)

あなたのconfigパスが異なっています私の周りにあなたが何を持っているかを見て回っています。適切なconfが/etc/php-fpm.d/に存在する場合は、/etc/php-fpm.confに変更を加えないでください。

php-fpmを使用していない場合:正しい設定でphp.iniを更新してください。

設定を修正してください:質問に示されている設定では、正しい設定を提供するのではなく、コメントを外しています。これらの変更を元に戻す方が良いのは、PHPがそれらを理解できないからです。 PHP-FPM用

正しい行は、次のとおりです。

; enable display of errors 
    php_flag[display_errors] = on 
    php_flag[display_startup_errors] = on 

通常phpのための正しいラインは次のとおりです。

; enable display of errors 
    display_errors = On 
    display_startup_errors = On 

アドバイス:でこれらのオプションを使用しないでください。本番環境。ご多幸を祈る。

+0

注: '; FPM設定; 'not under ';グローバルオプション; ' –

+0

なぜですか?私は 'の下に' php_flag [html_errors] = off'を追加します。 fp-fpm -i | grep html_errors html_errors => On => On' – ahui

+0

何らかの理由で、私はphp_flagの代わりにphp_admin_flagを使用しなければなりませんでした。私と同じボート –

10

/etc/php5/fpm/php.ini(DebianのUbuntuスタイルの設定で使用されている)の場合は、このファイルへの変更が有効になり、特定の/etc/php5/fpm/pool.d/*.confファイルを変更することでその設定をプールごとにさらに上書きすることができます。私の場合はZendのエラーやnginxので

+0

http://stackoverflow.com/questions/10665783/php-ini-which-one –

4

- PHP5のFPM、次のように動作します:

表示、コードの上に置くためにだけ、私はIf(){...}

なければpublic/index.php

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

に入れしかし、場合にのみ、エラーは、これを与える:

Parse error: syntax error, unexpected '}', expecting ',' or ';' in /usr/local/nginx/html/ZendSkeletonApplication/module/Album/src/Album/Controller/AlbumController.php on line 12 

別のもの!このようなmodule.config.phpで

'display_not_found_reason' => true, 
'display_exceptions'  => true, 

'view_manager' => array(
    'template_path_stack' => array(
     'album' => __DIR__ . '/../view', 
     'display_not_found_reason' => true, 
     'display_exceptions'  => true, 
    ), 
), 

私は、画面上のerror.logのすべてのエラーを取得:

Fatal error: Uncaught exception 'Zend\View\Exception\InvalidArgumentException' with message 'Invalid path provided; must be a string, received boolean' in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php:201 Stack trace: #0 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/View/Resolver/TemplatePathStack.php(149): Zend\View\Resolver\TemplatePathStack->addPath(true) #1 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/Mvc/Service/ViewTemplatePathStackFactory.php(38): Zend\View\Resolver\TemplatePathStack->addPaths(Array) #2 [internal function]: Zend\Mvc\Service\ViewTemplatePathStackFactory->createService(Object(Zend\ServiceManager\ServiceManager), 'viewtemplatepat...', 'ViewTemplatePat...') #3 /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php(939): call_user_func(Array, Object(Zend in /usr/local/nginx/html/ZendSkeletonApplication/vendor/zendframework/zendframework/library/Zend/ServiceManager/ServiceManager.php on line 946 

私はdidnの」このコードを設定しますconfigファイルをシステムのphp-fpmとしてtouchします(Ubuntu 14.04)。

+0

これは非常に古い質問ですが、あなたの解決策を共有しました。ありがとうございます。 – Pranav

+0

おかげで歓迎です、stackoverflow help me、私は好意を返す:-) – vlad

関連する問題