Heim > Artikel > Backend-Entwicklung > So beheben Sie den Nginx-Fehler, bei dem kein PHP angezeigt wird
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 = OnDarunter 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-fpm3. 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!