Ich versuche, eine 30-MB-Datei auf meinen Server hochzuladen, die jedoch nicht funktioniert.
Wenn ich eine 30-MB-Datei hochlade, wird auf der Seite " Seite nicht gefunden " geladen.
Wenn ich eine 3-MB- Datei hochlade, erhalte ich " 413 Request Entity Too Large " mit nginx / 0.6.32
Ich versuche, nginx zu finden, damit ich " client_max_body_size " erhöhen kann, aber ich kann nginx auf meinem Server nicht finden. Ich habe sogar versucht zu laufen:
vi /etc/nginx/nginx.conf
oder
vi /usr/local/nginx/conf/nginx.conf
um zu überprüfen, ob die Konfigurationsdatei vorhanden ist, aber ich konnte sie auf meinem Server nicht finden.
Gibt es überhaupt eine Möglichkeit, dieses Problem zu beheben? Oder muss ich nginx auf meinem Server installieren?
BEARBEITEN:
Ich habe alle notwendigen Änderungen in meinen php.ini-Dateien vorgenommen.
post_max_size 128M
upload_max_filesize 100M
memory_limit 256M
Danke, Raju
ps aux | grep nginx
zu sehen, ob es läuft?which nginx
? Dadurch erhalten Sie den Speicherort der ausführbaren Datei, nicht die Konfigurationsdatei, aber es sollte zumindest bestätigt werden, ob nginx installiert ist oder nicht.Antworten:
Quelle: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/
Bearbeiten Sie die conf-Datei von nginx:
Fügen Sie im http-Abschnitt eine Zeile hinzu:
http { client_max_body_size 100M; }
Verwenden Sie kein MB, es wird nicht funktionieren, nur das M!
Vergessen Sie auch nicht, nginx neu zu starten
quelle
http { }
Abschnitt enthält, fügen Sie den Rest hinzu! Das Hinzufügen eines neuenhttp {}
Abschnitts schlägt fehl und gibt einen"http" directive is duplicate
Fehler im Nginx-Protokoll aus.-in php.ini (innerhalb von /etc/php.ini)
max_input_time = 24000 max_execution_time = 24000 upload_max_filesize = 12000M post_max_size = 24000M memory_limit = 12000M
-in nginx.conf (inside / opt / nginx / conf)
client_max_body_size 24000M
Es funktioniert für meinen Fall
quelle
Bearbeiten Sie zuerst die Nginx-Konfigurationsdatei (
nginx.conf
)Ort:
sudo nano /etc/nginx/nginx.conf
Fügen Sie folgende Codes hinzu:
http { client_max_body_size 100M; }
Fügen Sie dann die folgenden Zeilen in die PHP-Konfigurationsdatei ein (
php.ini
)Ort:
sudo gedit /etc/php5/fpm/php.ini
Fügen Sie folgende Codes hinzu:
memory_limit = 128M post_max_size = 20M upload_max_filesize = 10M
quelle
nginx.conf
Datei wie angewiesen geöffnet , aber sie war leer! Ich hatte das nicht erwartet, aber als ich Ihren Code hinzufügte, funktionierte es immer noch ... wie ich es erwarten würde, aber aus irgendeinem Grund war ich es nicht und ich war sehr glücklich, als es geschah!Bitte geben Sie die Domain-Nginx-Datei ein:
Hinzufügen, um diesen Code abzulegen
client_max_body_size 24000M;
Wenn Sie eine Fehlermeldung erhalten, verwenden Sie diesen Befehl
quelle
Ich füge die Änderungen direkt zu meinem virtuellen Host hinzu, stattdessen die globale Konfiguration von nginx wie folgt:
server { client_max_body_size 100M; ... }
Und dann ändere ich die Parameter in php.ini, wie die obigen Kommentare:
max_input_time = 24000 max_execution_time = 24000 upload_max_filesize = 12000M post_max_size = 24000M memory_limit = 12000M
und was Sie nicht vergessen können, ist, nginx und php-fpm neu zu starten, in Centos 7 ist wie folgt:
quelle
Fügen Sie dann eine Zeile in den http-Abschnitt ein
http { client_max_body_size 100M; }
benutze nicht nur MB M.
dann für PHP-Standort
Für heutige Tage maximal PHP 7.0 oder höher verwenden
sudo nano /etc/php/7.2/fpm/php.ini //7.3,7.2 or 7.1 which php you use
Überprüfen Sie diejenigen, die durch Ihren Wunsch zunehmen.
memory_limit = 128M post_max_size = 20M upload_max_filesize = 10M
starte php-fpm neu
quelle
Angenommen, Sie haben die erforderlichen Änderungen in Ihren php.ini-Dateien vorgenommen:
Sie können das Problem beheben, indem Sie die folgende Zeile in Ihre Datei nginx.conf einfügen, die sich im folgenden Pfad befindet:
Bearbeiten Sie dann die Datei mit dem vim-Texteditor wie folgt:
und fügen Sie client_max_body_size mit einem ausreichend großen Wert hinzu, zum Beispiel:
client_max_body_size 20MB;
Stellen Sie danach sicher, dass Sie mit
:xi
oder speichern:wq
Und dann starten Sie Ihren Nginx neu.
Das ist es.
Arbeitete für mich, hoffe das hilft.
quelle
Ich habe den Upload mit den obigen Änderungen arbeiten lassen. Aber als ich die Änderungen vornahm, bekam ich beim Hochladen von Dateien eine 404-Antwort, die mich zum weiteren Debuggen veranlasste und durch Überprüfen von nginx error.log herausfand, dass es sich um ein Berechtigungsproblem handelt
Lösung:
Überprüfen Sie den aktuellen Benutzer- und Gruppenbesitz in / var / lib / nginx.
$ ls -ld /var/lib/nginx
drwx ------. 3 nginx nginx 17 Okt 5 19:31 / var / lib / nginx
Dies weist darauf hin, dass ein möglicherweise nicht vorhandener Benutzer und eine Gruppe mit dem Namen nginx diesen Ordner besitzt. Dies verhindert das Hochladen von Dateien.
In meinem Fall war der in "/etc/nginx/nginx.conf" erwähnte Benutzername
Ändern Sie in diesem Fall den Ordnerbesitz in den in nginx.conf definierten Benutzer vagrant.
$ sudo chown -Rf vagrant:vagrant /var/lib/nginx
Stellen Sie sicher, dass es sich tatsächlich geändert hat.
$ ls -ld /var/lib/nginx drwx------. 3 vagrant vagrant 17 Oct 5 19:31 /var/lib/nginx
Laden Sie Nginx und PHP-Fpm neu, um sicheres Sade zu erreichen.
Der Fehler "Berechtigung verweigert" sollte jetzt verschwinden. Überprüfen Sie das error.log (basierend auf dem Speicherort von nginx.conf error_log).
$ sudo nano /path/to/nginx/error.log
quelle
Datei öffnen
/etc/nginx/nginx.conf
Hinzufügen oder ändernclient_max_body_size 0;
quelle
Verwenden:
Befehl oder hinzufügen:
um den Speicherort der Konfigurationsdatei zu erhalten.
Aktualisieren Sie diese Variablen entsprechend Ihren Anforderungen und Ihrem Server
max_input_time = 24000 max_execution_time = 24000 upload_max_filesize = 12000M post_max_size = 24000M memory_limit = 12000M
Unter Linux müssen Sie den Dienst nginx / apache und phpfpm neu starten, damit die neuen INI-Einstellungen geladen werden. Unter xampp und Verstärkern können Sie diese über das mit solchen Anwendungen gelieferte Bedienfeld neu starten.
quelle