Nginx
Nginx 不記錄 PHP 錯誤
在我的網站上訪問一些 PHP 腳本時,我收到了可怕的 500 錯誤消息。我想知道修復它有什麼問題,但是 Nginx 沒有在我指定的日誌文件中記錄任何 PHP 錯誤。這是我的伺服器塊:
server { listen 80; server_name localhost; access_log /home/whitey/sites/localhost/logs/access.log; error_log /home/whitey/sites/localhost/logs/error.log error; root /home/whitey/sites/localhost/htdocs; index index.html index.php /index.php; location / { } location ~ \.php$ { fastcgi_pass unix:/tmp/phpfpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { expires max; } }
請注意,有些 PHP 腳本可以正常工作,而有些則不能。所以 PHP 沒有全域問題,只是這些腳本中有一些東西導致 Nginx 拋出 500 錯誤。
我怎樣才能找到這件事的底部?唯一的問題
error.log
是關於未找到 favicon.ico 的錯誤。
您必須將以下內容添加到您的 php-fpm 池配置中:
catch_workers_output = 1
您必須將此行添加到每個定義的池中!
我有一個類似的問題。
我嘗試在 CentOS7 上使用 php-fpm 7.0 和 nginx 部署 phpMyAdmin。Nginx 向我顯示 500.html 但任何日誌文件中都沒有錯誤。我做了這一切
catch_workers_output = 1
和
display_errors = On
nginx 日誌或 php-fpm 日誌均未包含任何錯誤字元串。
當我在 nginx.conf 中評論這一行時,我能夠在瀏覽器頁面中看到錯誤的內容。
# error_page 500 502 503 504 /50x.html; # location = /50x.html { # }
這就是幫助我理解麻煩的原因。