Wenn Nginx wird als Backend-Server für Web-Apps wie WordPress verwendet , Drupal , usw. . (die normalerweise auf PHP- und MySQL-Datenbanken basieren), stoßen viele Benutzer auf den Fehler:„413 – Request Entity Too Large ’.
Dieser Fehler tritt auf, wenn ein Benutzer versucht, eine Datei hochzuladen, die größer ist als die konfigurierte maximale Upload-Dateigröße. Das Standardlimit für die Größe des Datei-Uploads beträgt 1 MB wie in Nginx definiert Konfiguration.
[Das könnte Ihnen auch gefallen:So beheben Sie das 504-Gateway-Timeout in Nginx-Server ]
Normalerweise tritt dieser Fehler bei WordPress auf Administrator, der zum ersten Mal versucht, ein Plugin zu installieren. Ich habe zum Beispiel versucht, den „Download Manager“ zu installieren ’ WordPress-Plugin in meinem lokalen WP-Setup, es gibt mir den gleichen Fehler:
Ändern Sie die Größenbeschränkung für Upload-Dateien in Nginx
Öffnen Sie Nginx Konfigurationsdatei entweder in Vim oder einen beliebigen Texteditor Ihrer Wahl.
$ sudo vim /etc/nginx/nginx.conf
Fügen Sie die Anweisung „client_max_body_size“ hinzu ‘. Diese Direktive definiert die maximale Größe des Hauptteils einer Client-Anfrage. Standardmäßig ist der Wert dieser Anweisung 1 MB . Wenn Sie diesen Wert erhöhen, können Sie eine größere Datei hochladen, die mit der Anfrage gesendet wird.
Fügen Sie die folgende Zeile unter „http“ hinzu blockieren:
client_max_body_size 16M;
Sie können statt 16 MB sogar eine höhere Zahl eingeben Falls erforderlich. Jetzt speichern und schließen Sie die Datei.
Starten Sie Nginx neu mit dem folgenden Befehl.
$ sudo systemctl restart nginx
Jetzt Ihr Nginx Setup ermöglicht Ihnen das Hochladen einer Datei mit bis zu 16 MB in Größe. Versuchen wir erneut, das Plug-in zu installieren.
Auch nach dem Konfigurieren der Nginx-Dateigröße blockiert das PHP-Datei-Upload-Limit immer noch den Upload. Mal sehen, wie man es ändert.
Größenbeschränkung für PHP-Uploads ändern
Nginx wird in Verbindung mit PHP-basierten Web-Apps verwendet, und das oben gezeigte Problem kann aufgrund einer Beschränkung der Upload-Größe von PHP-Dateien auftreten.
Öffnen Sie die Datei „php.ini ‘, die im PHP-Konfigurationsverzeichnis vorhanden ist.
$ sudo vim /etc/php/7.4/fpm/php.ini OR $ sudo vim /etc/php.ini
Gehen Sie zu den Variablen upload_file_maxsize , also die maximale Größe einer Datei, die hochgeladen werden darf, und post_maxsize , d.h. die maximale Größe einer Post-Anfrage.
Da eine Datei als Teil der Post-Anfrage hochgeladen wird, post_maxsize sollte immer größer als upload_file_maxsize sein .
Ändern Sie die Werte nach Bedarf.
upload_max_filesize = 16M post_max_size = 20M
Speichern und beenden Sie die Datei.
Starten Sie PHP neu , sowie Nginx , damit die neue Konfiguration stattfindet:
$ sudo systemctl restart php7.4-fpm $ sudo systemctl restart nginx
Sie sollten php7.4 ersetzen im obigen Befehl mit Ihrer PHP-Version oder einfach nur „php“. ’, wenn das der Name des PHP-Dienstes auf Ihrem Rechner ist.
Die neu festgelegte Dateigröße wird nun für den Datei-Upload in der Web-App zugelassen und das Plugin fährt erfolgreich mit der Installation fort.
Schlussfolgerung
Wir haben gesehen, wie man mit dem Problem umgeht, dass eine Anforderungsentität in einer Nginx-basierten Webanwendung zu groß ist. Beachten Sie, dass nicht nur PHP, sondern auch andere CGIs mit Nginx verwendet werden, das Problem auftreten kann; in diesem Fall können Benutzer das Limit in der Konfigurationsdatei für das jeweilige CGI erhöhen.
Danke fürs Lesen und teilen Sie uns Ihre Gedanken in den Kommentaren unten mit!