So bearbeiten Sie die Datei nginx.conf, um den Upload der Datei zu erhöhen


105

Ich möchte das erhöhen maximum file size, was hochgeladen werden kann.
Nachdem ich online recherchiert hatte, stellte ich fest, dass Sie die Datei 'nginx.conf' bearbeiten müssen.
Die einzige Möglichkeit, auf diese Datei zuzugreifen, besteht darin, Putty zu durchlaufen und den folgenden Befehl einzugeben:

vi /etc/nginx/nginx.conf

Dadurch wird die Datei geöffnet, aber ich habe jetzt 2 Fragen:

  1. Wie bearbeite ich diese Datei?
  2. Ich habe online festgestellt, dass Sie die folgende Codezeile hinzufügen müssen:

client_max_body_size 8M;

Wo würde ich diese Codezeile einfügen nginx.conf?

Antworten:


198

Fügen Sie client_max_body_size hinzu

Nachdem Sie die Datei bearbeitet haben, müssen Sie die Zeile wie folgt in den Serverblock einfügen.

server {
    client_max_body_size 8M;

    //other lines...
}

Wenn Sie mehrere Websites hosten, fügen Sie diese wie folgt zum http-Kontext hinzu.

http {
    client_max_body_size 8M;

    //other lines...
}

Aktualisieren upload_max_filesizeSie außerdem die Datei in Ihrer php.ini-Datei, damit Sie Dateien derselben Größe hochladen können.

Speichern in Vi

Sobald Sie fertig sind, müssen Sie speichern. Dies kann in vi durch Drücken der escTaste und Eingeben :wqund Zurückkehren erfolgen.

Neustart von Nginx und PHP

Jetzt müssen Sie Nginx und PHP neu starten, um die Konfigurationen neu zu laden. Dies kann mit den folgenden Befehlen erfolgen:

sudo service nginx restart
sudo service php5-fpm restart

Oder wie auch immer Ihr PHP-Dienst heißt.


8
Es könnte keine schlechte Idee sein, es dem http {Kontext hinzuzufügen, damit alle Server es erben. Und stellen Sie sicher, dass Sie Ihr upload_max_filesizeIn php.inian Ihre Nginx-Einstellung anpassen . Wenn Sie Laravel mit Homestead / Vagrant ausführen, befindet sich diese Datei unter /etc/php5/fpm/php.ini.
Damiani

Ja, ich habe vergessen zu erwähnen, dass ich Laravel Homestead benutze. Also habe ich '/etc/php5/fpm/php.ini' geöffnet und die Codezeile 'upload_max_filesize = 2M' gefunden, also möchte ich sie so ändern, dass '2M' zu '8M' wird. Wenn ich diese Bearbeitung vorgenommen habe, drücke ich einfach 'Strg + Z', um die Datei zu verlassen, und führe dann 'sudo service nging restart' aus?
Jeff P.

Sie drücken nicht Strg-Z. Sie müssen es mit vi speichern. Drücken Sie esc, geben Sie Folgendes ein: wq und drücken Sie die Eingabetaste.
Matt Burrow

2
Verlassen Sie den Editor und stellen Sie den Befehl vi mit sudo voran. Wie so; sudo vi /etc/nginx/nginx.conf oder sudo vi /etc/php5/fpm/php.ini
Matt Burrow

2
sudo nginx -s reloadlädt die Konfiguration neu, ohne nginx neu zu starten
Vincnetas

12

Wenn Sie einen Nginx- Proxy als Docker-Container verwenden (z. B. jwilder / nginx-proxy ), gibt es folgende Möglichkeiten zum Konfigurieren client_max_body_size(oder anderer Eigenschaften):

  1. Erstellen Sie eine benutzerdefinierte Konfigurationsdatei, z. B. /etc/nginx/proxy.confmit einem richtigen Wert für diese Eigenschaft
  2. Wenn Sie einen Container ausführen, fügen Sie ihn als Volume hinzu, z -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

Persönlich war dieser Weg ziemlich praktisch, da kein benutzerdefinierter Container erstellt werden muss, um die Konfiguration zu ändern. Ich bin nicht mit verbunden jwilder/nginx-proxy, habe es nur in meinem Projekt verwendet und die oben beschriebene Art hat mir geholfen. Hoffe, es hilft auch jemand anderem.


1
Dieses verwandte Projekt: github.com/evertramos/… (der Nginx-Proxy von jwilder in Kombination mit der Zertifikatsgenerierung von lässt uns verschlüsseln) verfügt über ein übersichtliches Skript und hat diese Option vorkonfiguriert (auf 100 MB). Erstellen Sie die .env aus dem Beispiel. die Zeile auskommentieren #USE_NGINX_CONF_FILES=true; rennen start.shund endlich docker-compose up. (Ich bin mit keinem der beiden Projekte verbunden).
Glaux


2

Navigieren Sie zuerst im Pfad von php.ini

sudo vi /etc/php/7.2/fpm/php.ini

dann nächste Änderung

upload_max_filesize = 999M
post_max_size = 999M

dann ESC-->:wq

Fügen Sie nun zuletzt diesen Befehl ein.

sudo systemctl starte php7.2-fpm.service neu

du bist fertig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.