Heim > Backend-Entwicklung > PHP-Problem > 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
Freigeben: 2023-03-28 17:07:15
Original
1350 Leute haben es durchsucht

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;
    }
}
Nach dem Login kopieren

其中,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
Nach dem Login kopieren

三、PHP 配置文件中的错误设置

PHP的配置文件一般为/etc/php/7.4/fpm/php.ini,找到error_reporting这一行,将其设置为显示所有的错误信息:

error_reporting = E_ALL
Nach dem Login kopieren

然后找到display_errors这一行,将其设置为On

display_errors = On
Nach dem Login kopieren
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
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage