Bei größeren Dateiuploads kann es vorkommen, das nginx die Fehlermeldung „413 Request Entity Too Large“ anzeigt und den Dateiupload abbricht. Diese Standard Einstellung gibt es, um den Webserver vor zu großen Dateien zu schützen und diese Fehlermeldung kann man ganz leicht beheben.
Dafür gibt es den Konfigurationsparameter „client_max_body_size“, wenn dieser nicht gesetzt ist, hat er den Wert 1m. Dadurch wird der Upload auf die maximale Größe von 1MB beschränkt.
1 2 3 4 5 6 7 8 9 10 |
http { server { client_max_body_size 1M; listen 80; server_name localhost; location / { proxy_pass http://127.0.0.1:8080/; } } } |
Wie man hier in Zeile 3 sehen kann. Diesen Wert kann man nun auf eine entsprechende Größe anpassen oder auf 0 setzen, um das Limit ganz zu entfernen, dies ist allerdings nicht zu Empfehlen.
PHP Upload Limit anpassen
Eine ähnliche Einstellung gibt es auch in der php.ini, diese Datei findet man unter dem Pfad /etc/php/7.0/fpm/php.ini (7.0 ist durch die genutzte PHP Version zu ersetzen). In dieser Datei sucht man nach „upload_max_filesize“.
1 2 3 |
; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M |
Diesen Wert kann man nun ebenfalls auf die benötigte Größe einstellen.
Konfig Dateien neu laden
Nachdem man diese Änderungen vorgenommen hat, muss man die Konfigurationsdateien neu laden. Diese kann man mit diesen Befehlen erledigen:
1 2 |
sudo service nginx reload sudo service php7.0-fpm reload |
Und schon ist ein Upload von größeren Datei über nginx und PHP möglich.
Warum kommt dieser Fehler eigentlich?
Diese Konfiguration dient eurem Schutz, damit nich unendliche große Dateien an euren Server gesendet werden können und dieser dadurch lehmgelegt wird. Daher solltet ihr darauf achten diesen Wert auch nicht zu groß einzustellen.
Viele Spaß weiterhin bei der Nutzung von Nginx