[英]PHP FPM returns HTTP 500 for all PHP errors
我正在使用PHP-FPM運行nginx。 我處理php文件的nginx配置如下所示:
location ~ \.php$ {
set $php_root /home/me/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
現在,我有一個簡單的php文件,如下所示:
<?php
ech "asd"
asd""
?>
是的,有一個明顯的錯誤。 當我嘗試訪問php文件,而不是跟蹤語法錯誤時,我總是得到HTTP 500內部服務器錯誤。我嘗試使用error_reporting(-1);
但它總是返回HTTP 500.如何讓PHP打印確切的錯誤而不是返回通用的HTTP 500?
嘗試在php.ini
找到以下行:
display_errors = Off
然后開啟
為了發布更完整的答案,我使用了php.ini的生產版本,其中display_errors = Off。 我現在所做的不是全局打開,而是對於需要報告錯誤的文件,我使用ini_set('display_errors', 'On');
在文件的開頭。
我也遇到了這個問題,我在php.ini
設置了display_errors = Off
,但它不起作用。 然后我在php-fpm.conf
發現php[display_errors]=off
,它將覆蓋php.ini
的值,它可以工作。
顯示錯誤只會影響錯誤打印到輸出的事實。
如果您打開了日志錯誤,則除非顯示已關閉,否則日志中仍會丟失錯誤,這不是預期的行為。
預期的行為是,如果啟用了日志,則會發現錯誤。 如果顯示已打開,則在屏幕/輸出上發現錯誤。 如果兩者都在錯誤上。
當前版本有一個錯誤的錯誤。
對於Ubuntu 12.10,在php-fpm-pool-config文件中:
php_flag[display_errors] = on
在php.ini文件中:
display_errors = On
您可以通過這種方式顯示錯誤:轉到php.ini並找到display_errors
,您應該看到display_errors = Off
,只需將Off
替換為On
,重新啟動php並再次運行。
如果你從Remi repo php72安裝。 它是默認用戶和組與apache |
轉到你的www.conf文件,找到/etc/opt/remi/php72/php-fpm.d/www.conf
並改變
user=nginx
group=nginx
在重新啟動你的php fpm之前
systemctl restart php72-php-fpm
CENTOS REMI PHP7.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.