nginx で PHP エラーが表示されない場合の解決方法

PHPz
リリース: 2023-05-26 13:03:46
転載
1826 人が閲覧しました

1. エラーのレポートと収集方法を理解する

サーバーをデプロイするプロセスでは、習慣的に PHP のエラー出力をオフにします。 PHP エラー メッセージはセキュリティの脆弱性を暴露したり、情報漏洩につながる可能性があります。しかし、開発プロセスでは、問題を特定してプログラムをデバッグするために、これらのエラー メッセージが必要になります。

この問題を解決する 1 つの方法は、PHP のエラー出力をオンにすることです。 PHP では、エラー ログ レベルを設定したり、エラーをすぐに報告したりできます。 Nginx 設定ファイルにいくつかのオプションを追加して、PHP エラー メッセージを表示できます。

2. Nginx 設定ファイルの PHP エラー設定

Nginx サーバー設定ファイル (通常は /etc/nginx/nginx.conf) を開きます。 http{} ブロックを見つけて、次の設定を追加します。

server {
    # server settings
    ...
    
    # server block location rules
    ...

    # php-fpm status check
    location ~ ^/(status|ping)$ {
        access_log off;
        # php-fpm settings
        fastcgi_param PHP_VALUE "error_reporting=E_ALL";
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    # php error logs
    location ~ \.php$ {
        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log";
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

    # error pages
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    # static files
    location ~* \.(jpg|jpeg|gif|png|css|js|ico)$ {
        expires 7d;
        access_log off;
    }

    # disable direct access to .ht files
    location ~ /\.ht {
        deny all;
    }
}
ログイン後にコピー

その中で、fastcgi_param PHP_VALUE は、リクエストされた PHP プロセスにエラー情報を渡すために使用されます。 Nginxサーバー。 error_reporting=E_ALL は、すべてのエラー レベル情報を出力することを意味します。 fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log"; は、PHP エラー情報を /var/log/nginx/php_error.log ファイルに出力することを意味します。

設定ファイルを変更した後、Nginx サーバーをリロードします:

sudo systemctl reload nginx
ログイン後にコピー

3. PHP 設定ファイルの設定が間違っています

PHP 設定ファイルは次のとおりです。一般 /etc/php/7.4/fpm/php.ini の場合、error_reporting という行を見つけて、すべてのエラー メッセージを表示するように設定します。

error_reporting = E_ALL
ログイン後にコピー

次に、# を見つけます。 ##display_errorsこの行を On に設定すると、すべての PHP エラー メッセージが Web ページに表示されます:

display_errors = On
ログイン後にコピー
次に、ファイルを保存して PHP-FPM を再起動します。 :

rree

以上がnginx で PHP エラーが表示されない場合の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!