일상적인 웹사이트 개발에서 우리는 종종 Nginx를 웹 서버로, PHP를 백엔드 언어로 사용합니다. 그러나 때로는 PHP에 오류가 있어도 Nginx가 아무런 정보도 표시하지 않아 프로그램을 디버그하기가 매우 어려워지는 경우가 있습니다. 이 기사에서는 Nginx가 PHP 오류 메시지를 표시하도록 하는 몇 가지 솔루션을 소개합니다.
1. 오류 보고 및 수집 방법 이해
서버 배포 과정에서는 PHP 오류 정보가 보안 위험이나 정보 유출로 이어질 수 있기 때문에 습관적으로 PHP의 오류 출력을 꺼둡니다. 그러나 개발 과정에서 문제를 찾고 프로그램을 디버깅하려면 이러한 오류 메시지가 필요합니다.
이 문제를 해결하는 한 가지 방법은 PHP의 오류 출력을 켜는 것입니다. PHP에서는 오류 로그 수준을 설정하거나 오류를 즉시 보고할 수 있습니다. 동시에 Nginx 구성 파일에 몇 가지 옵션을 추가하여 PHP 오류 메시지를 표시할 수도 있습니다.
2. Nginx 구성 파일의 PHP 설정이 잘못되었습니다.
Nginx 서버 구성 파일(일반적으로 /etc/nginx/nginx.conf
)을 열고 http{} code>를 찾습니다. 블록에 다음 구성을 추가하세요. <code>/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服务器请求的PHP进程传递错误信息。 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
三、PHP 配置文件中的错误设置
PHP的配置文件一般为/etc/php/7.4/fpm/php.ini
,找到error_reporting
这一行,将其设置为显示所有的错误信息:
error_reporting = E_ALL
然后找到display_errors
这一行,将其设置为On
display_errors = On
fastcgi_param PHP_VALUE
는 Nginx 서버에서 요청한 PHP 프로세스에 오류 정보를 전달하는 데 사용됩니다. 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 restart php7.4-fpm
/etc/php/7.4/fpm/php.ini 에서 <code>error_reporting
줄을 찾아 모든 오류 메시지를 표시하도록 설정하세요. 🎜rrreee🎜 그런 다음 display_errors
줄을 찾아 On, 그러면 모든 PHP 오류 메시지가 웹 페이지에 표시될 수 있습니다: 🎜rrreee🎜 그런 다음 파일을 저장하고 PHP-FPM을 다시 시작합니다: 🎜rrreee🎜🎜 4. 요약 🎜🎜🎜 PHP 오류 메시지를 표시하도록 Nginx 웹 서버 구성 메시지 숨겨진 트릭은 Nginx 서버와 PHP 프로세스 모두에서 설정하는 것입니다. 이를 통해 개발자는 코드의 오류를 신속하게 식별하고 문제를 신속하게 해결하며 코드 품질을 향상시킬 수 있습니다. 🎜
위 내용은 PHP 오류를 표시하지 않는 nginx를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!