PHP 오류를 표시하지 않는 nginx를 해결하는 방법

PHPz
풀어 주다: 2023-05-26 13:03:46
앞으로
1841명이 탐색했습니다.

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
로그인 후 복사
🎜🎜 3. PHP 구성 파일의 설정이 잘못되었습니다. 🎜🎜🎜PHP의 구성 파일은 일반적으로 /etc/php/7.4/fpm/php.ini 에서 <code>error_reporting 줄을 찾아 모든 오류 메시지를 표시하도록 설정하세요. 🎜rrreee🎜 그런 다음 display_errors 줄을 찾아 On, 그러면 모든 PHP 오류 메시지가 웹 페이지에 표시될 수 있습니다: 🎜rrreee🎜 그런 다음 파일을 저장하고 PHP-FPM을 다시 시작합니다: 🎜rrreee

위 내용은 PHP 오류를 표시하지 않는 nginx를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿