Heim  >  Artikel  >  Backend-Entwicklung  >  So beheben Sie den Nginx-Fehler, bei dem kein PHP angezeigt wird

So beheben Sie den Nginx-Fehler, bei dem kein PHP angezeigt wird

PHPz
PHPzOriginal
2023-03-28 16:54:071226Durchsuche

Bei der täglichen Website-Entwicklung verwenden wir häufig Nginx als Webserver und PHP als Backend-Sprache. Manchmal stellen wir jedoch fest, dass Nginx selbst bei einem Fehler in PHP keine Informationen anfordert, was es für uns sehr schwierig macht, das Programm zu debuggen. In diesem Artikel werden einige Lösungen vorgestellt, mit denen Nginx PHP-Fehlermeldungen auslösen kann.

1. Fehlerberichts- und Erfassungsmethoden verstehen

Während des Bereitstellungsprozesses des Servers deaktivieren wir normalerweise die Fehlerausgabe von PHP. Dies liegt daran, dass PHP-Fehlerinformationen zu Sicherheitsrisiken oder Informationslecks führen können. Aber während des Entwicklungsprozesses benötigen wir diese Fehlermeldungen, um Probleme zu lokalisieren und das Programm zu debuggen.

Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Fehlerausgabe von PHP zu aktivieren. In PHP können wir die Fehlerprotokollstufe festlegen oder Fehler sofort melden. Gleichzeitig können wir der Nginx-Konfigurationsdatei auch einige Optionen hinzufügen, um PHP-Fehlermeldungen anzuzeigen.

2. Falsche PHP-Einstellungen in der Nginx-Konfigurationsdatei

Öffnen Sie die Nginx-Serverkonfigurationsdatei, normalerweise /etc/nginx/nginx.conf, suchen Sie nach http{} Block, fügen Sie die folgende Konfiguration hinzu: /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
Darunter wird fastcgi_param PHP_VALUE verwendet, um Fehlerinformationen an den vom Nginx-Server angeforderten PHP-Prozess zu übergeben. error_reporting=E_ALL bedeutet die Ausgabe von Informationen aller Fehlerstufen. fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_error.log"; bedeutet die Ausgabe von PHP-Fehlerinformationen in die Datei /var/log/nginx/php_error.log.

Nachdem Sie die Konfigurationsdatei geändert haben, laden Sie den Nginx-Server neu:

sudo systemctl restart php7.4-fpm
3. Falsche Einstellungen in der PHP-Konfigurationsdatei

PHPs Konfigurationsdatei ist im Allgemeinen /etc/php/7.4/fpm/php.ini , suchen Sie die Zeile <code>error_reporting und stellen Sie sie so ein, dass alle Fehlermeldungen angezeigt werden: 🎜rrreee🎜 Suchen Sie dann die Zeile display_errors und setzen Sie sie auf Ein, damit alle PHP-Fehlermeldungen auf der Webseite angezeigt werden können: 🎜rrreee🎜 Dann speichern Sie die Datei und starten PHP-FPM neu: 🎜rrreee🎜🎜 4. Zusammenfassung 🎜🎜🎜 Konfigurieren Sie den Nginx-Webserver so, dass er einen PHP-Fehler meldet Nachrichten Der versteckte Trick besteht darin, es sowohl vom Nginx-Server als auch vom PHP-Prozess aus einzurichten. Dies kann Entwicklern helfen, Fehler im Code schnell zu erkennen, Probleme schnell zu beheben und die Codequalität zu verbessern. 🎜

Das obige ist der detaillierte Inhalt vonSo beheben Sie den Nginx-Fehler, bei dem kein PHP angezeigt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn