Próbuję wgrać plik 30MB na mój serwer i nie działa.
Gdy przesyłam plik 30 MB, strona ładuje się „ Nie znaleziono strony ”
Gdy przesyłam plik o rozmiarze 3 MB, otrzymuję komunikat „ 413 Request Entity Too Large ” z nginx / 0.6.32
Próbuję znaleźć nginx, aby zwiększyć " client_max_body_size ", ale nie mogę znaleźć nginx zainstalowanego na moim serwerze. Próbowałem nawet biegać:
vi /etc/nginx/nginx.conf
lub
vi /usr/local/nginx/conf/nginx.conf
aby sprawdzić, czy plik konfiguracyjny istnieje, ale nie mogłem go znaleźć na moim serwerze.
Czy jest sposób, aby rozwiązać ten problem? Czy muszę zainstalować nginx na moim serwerze.
EDYTOWAĆ:
Dokonałem wszystkich niezbędnych zmian w moich plikach php.ini,
post_max_size 128M
upload_max_filesize 100M
memory_limit 256M
Dzięki, Raju
ps aux | grep nginx
sprawdzić, czy działa?which nginx
? To da ci lokalizację pliku wykonywalnego, a nie pliku konfiguracyjnego, ale powinno przynajmniej potwierdzić, czy nginx jest zainstalowany, czy nie.Odpowiedzi:
Źródło: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/
Edytuj plik konfiguracyjny nginx:
Dodaj linię w sekcji http:
http { client_max_body_size 100M; }
Nie używaj MB, nie zadziała, tylko M!
Nie zapomnij także zrestartować nginx
źródło
http { }
sekcję, dodaj resztę w niej! Dodanie nowejhttp {}
sekcji zakończy się niepowodzeniem i spowoduje"http" directive is duplicate
błąd w dzienniku Nginx.-in php.ini (wewnątrz /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 (wewnątrz / opt / nginx / conf)
client_max_body_size 24000M
Działa w moim przypadku
źródło
Najpierw edytuj plik konfiguracyjny Nginx (
nginx.conf
)Lokalizacja:
sudo nano /etc/nginx/nginx.conf
Dodaj następujące kody:
http { client_max_body_size 100M; }
Następnie dodaj następujące wiersze w pliku konfiguracyjnym PHP (
php.ini
)Lokalizacja:
sudo gedit /etc/php5/fpm/php.ini
Dodaj następujące kody:
memory_limit = 128M post_max_size = 20M upload_max_filesize = 10M
źródło
nginx.conf
plik zgodnie z instrukcją, ale był pusty! Nie spodziewałem się tego, ale kiedy dodałem twój kod, nadal działał ... tak, jak pewnie można by się spodziewać, ale z jakiegoś powodu nie byłem i byłem bardzo szczęśliwy, kiedy to zrobił!Dodaję zmiany bezpośrednio do mojego virtualhost zamiast globalnej konfiguracji nginx, na przykład:
server { client_max_body_size 100M; ... }
A potem zmieniam parametry w php.ini, jak w komentarzach powyżej:
max_input_time = 24000 max_execution_time = 24000 upload_max_filesize = 12000M post_max_size = 24000M memory_limit = 12000M
a czego nie możesz zapomnieć to ponowne uruchomienie nginx i php-fpm, w centos 7 wygląda to tak:
źródło
Wprowadź plik domeny nginx:
Dodaj do pliku ten kod
client_max_body_size 24000M;
Jeśli pojawi się błąd, użyj tego polecenia
źródło
Następnie dodaj linię w sekcji http
http { client_max_body_size 100M; }
nie używaj MB tylko M.
następnie do lokalizacji php
na dziś maksymalne użycie php 7.0 lub nowszego
sudo nano /etc/php/7.2/fpm/php.ini //7.3,7.2 or 7.1 which php you use
sprawdź te rosnące przez twoje pragnienie.
memory_limit = 128M post_max_size = 20M upload_max_filesize = 10M
zrestartuj php-fpm
źródło
Zakładając, że dokonałeś niezbędnych zmian w plikach php.ini:
Możesz rozwiązać ten problem, dodając następujący wiersz w pliku nginx.conf znajdującym się w następującej ścieżce:
następnie edytuj plik za pomocą edytora tekstu vim w następujący sposób:
i dodaj client_max_body_size z wystarczająco dużą wartością, na przykład:
client_max_body_size 20MB;
Następnie pamiętaj, aby zapisać za pomocą
:xi
lub:wq
A następnie uruchom ponownie nginx.
Otóż to.
Pracował dla mnie, mam nadzieję, że to pomoże.
źródło
Przesyłanie działa z powyższymi zmianami. Ale kiedy wprowadziłem zmiany, zacząłem otrzymywać odpowiedź 404 podczas przesyłania pliku, co doprowadziło mnie do dalszego debugowania i odkryłem, że jest to problem z uprawnieniami, sprawdzając błąd nginx.log
Rozwiązanie:
Sprawdź aktualną własność użytkownika i grupy w / var / lib / nginx.
$ ls -ld /var/lib/nginx
drwx ------. 3 nginx nginx 17 października 5 19:31 / var / lib / nginx
Oznacza to, że prawdopodobnie nieistniejący użytkownik i grupa o nazwie nginx jest właścicielem tego folderu. To uniemożliwia przesyłanie plików.
W moim przypadku nazwą użytkownika wymienioną w „/etc/nginx/nginx.conf” była
Zmień własność folderu na użytkownika zdefiniowanego w nginx.conf w tym przypadku vagrant.
$ sudo chown -Rf vagrant:vagrant /var/lib/nginx
Sprawdź, czy faktycznie się zmieniło.
$ ls -ld /var/lib/nginx drwx------. 3 vagrant vagrant 17 Oct 5 19:31 /var/lib/nginx
Załaduj ponownie nginx i php-fpm dla bezpieczniejszego sade.
Błąd odmowy pozwolenia powinien teraz zniknąć. Sprawdź error.log (na podstawie lokalizacji pliku error_log w nginx.conf).
$ sudo nano /path/to/nginx/error.log
źródło
Otwórz plik
/etc/nginx/nginx.conf
Dodaj lub zmieńclient_max_body_size 0;
źródło
Posługiwać się:
polecenie lub dodaj:
aby uzyskać lokalizację pliku konfiguracyjnego.
Zaktualizuj te zmienne zgodnie z potrzebami i serwerem
max_input_time = 24000 max_execution_time = 24000 upload_max_filesize = 12000M post_max_size = 24000M memory_limit = 12000M
W systemie Linux musisz ponownie uruchomić usługę nginx / apache i phpfpm, aby wczytać nowe ustawienia ini. Na xampp ammpy możesz je zrestartować z panelu sterowania dostarczonego z takimi aplikacjami.
źródło