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