本篇內(nèi)容主要講解“nginx不提示php錯(cuò)誤如何解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“nginx不提示php錯(cuò)誤如何解決”吧!
一、理解錯(cuò)誤報(bào)告及搜集方法
在部署服務(wù)器的過程中,我們習(xí)慣性地關(guān)閉了PHP的錯(cuò)誤輸出,這是因?yàn)镻HP的錯(cuò)誤信息可能會(huì)導(dǎo)致安全隱患暴露,或?qū)е滦畔⑿孤丁5窃陂_發(fā)過程中,我們需要這些錯(cuò)誤信息來定位問題和調(diào)試程序。
解決這一問題的方法之一是打開PHP的錯(cuò)誤輸出。在PHP中我們可以設(shè)置錯(cuò)誤日志級(jí)別或者即時(shí)報(bào)告錯(cuò)誤。同時(shí),我們也可以在Nginx的配置文件中添加一些選項(xiàng)來顯示PHP錯(cuò)誤信息。
二、Nginx 配置文件中的 PHP 錯(cuò)誤設(shè)置
打開Nginx服務(wù)器的配置文件,一般為/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用于向Nginx服務(wù)器請(qǐng)求的PHP進(jìn)程傳遞錯(cuò)誤信息。 error_reporting=E_ALL表示輸出所有錯(cuò)誤級(jí)別的信息。fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log";表示將PHP錯(cuò)誤信息輸出到/var/log/nginx/php_error.log文件中。
更改完配置文件后,重新加載Nginx服務(wù)器:
sudo systemctl reload nginx
三、PHP 配置文件中的錯(cuò)誤設(shè)置
PHP的配置文件一般為/etc/php/7.4/fpm/php.ini,找到error_reporting這一行,將其設(shè)置為顯示所有的錯(cuò)誤信息:
error_reporting = E_ALL
然后找到display_errors這一行,將其設(shè)置為On,這樣就可以在網(wǎng)頁上顯示所有的PHP錯(cuò)誤信息了:
display_errors = On
然后保存文件并重啟PHP-FPM:
sudo systemctl restart php7.4-fpm
到此,相信大家對(duì)“nginx不提示php錯(cuò)誤如何解決”有了更深的了解,不妨來實(shí)際操作一番吧!