413 Permintaan Entitas Terlalu Besar - Masalah Unggahan File


97

Saya mencoba mengunggah file 30MB di server saya dan tidak berfungsi.

  1. Ketika saya mengunggah file 30MB, halaman memuat " Halaman Tidak Ditemukan "

  2. Ketika saya mengunggah file 3MB, saya menerima " 413 Request Entity Too Large " dengan nginx / 0.6.32

Saya mencoba mencari nginx sehingga saya dapat meningkatkan " client_max_body_size " tetapi saya tidak dapat menemukan nginx yang terinstal di server saya. Saya bahkan mencoba berlari:

vi /etc/nginx/nginx.conf

atau

vi /usr/local/nginx/conf/nginx.conf

untuk memeriksa apakah file konfigurasi ada, tetapi saya tidak dapat menemukannya di server saya.

Apakah ada cara untuk menyelesaikan masalah ini? Atau apakah saya harus menginstal nginx di server saya.

EDIT:

Saya telah membuat semua perubahan yang diperlukan dalam file php.ini saya,

post_max_size 128M
upload_max_filesize 100M
memory_limit 256M

Terima kasih, Raju



Hai Mohammad, saya telah mencari nginx tetapi saya tidak dapat menemukannya di server saya. Saya yakin, nginx tidak terinstal di server saya, jadi saya bingung mengapa saya menerima pesan kesalahan yang merupakan milik Nginx
Raju Vishwas

pertama-tama Anda harus yakin ngix tidak diinstal di server Anda, tetapi jika Anda benar-benar yakin, mungkin karena alasan keamanan beberapa manajer server untuk peretas yang bingung menggunakan trik ini
Ashouri

Sudahkah Anda mencoba ps aux | grep nginxuntuk melihat apakah itu berjalan?
rpkamp

Apakah Anda mencoba which nginx? Itu akan memberi Anda lokasi file yang dapat dieksekusi, bukan file konfigurasi, tetapi setidaknya harus mengkonfirmasi apakah nginx diinstal atau tidak.
Doug McLean

Jawaban:


119

Sumber: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/

Edit file conf nginx:

nano /etc/nginx/nginx.conf

Tambahkan baris di bagian http:

http {
    client_max_body_size 100M;
}

Jangan gunakan MB itu tidak akan berhasil, hanya M!

Juga jangan lupa restart nginx

systemctl restart nginx

Ketika saya melakukan ini, 413 saya berubah menjadi 404. Saya menggunakan Amazon Linux di EC2. Juga dokumen nginx menunjukkan huruf kecil 'm'. nginx.org/en/docs/http/…
nu everest

Ini meminta kata sandi untuk mengubah file. Tapi saya tidak ingat mengaturnya. Apakah saya melewatkan sesuatu?
Sooraj

1
Path untuk nano harus nano /etc/nginx/nginx.conf.
MaXi32

Bekerja untuk saya tetapi CATATAN: Jika konfigurasi Anda sudah memiliki http { }bagian, tambahkan sisa di dalamnya! Menambahkan http {}bagian baru akan gagal dan memberikan "http" directive is duplicatekesalahan pada log Nginx.
jerclarke

42

-di php.ini (di dalam /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 (di dalam / opt / nginx / conf)

client_max_body_size 24000M

Ini bekerja untuk kasus saya


Hai Arun, masalah dengan server kami adalah, saya tidak dapat menemukan nginx terinstal tetapi masih memberikan kesalahan nginx
Raju Vishwas

temukan nginx di dalam / opt atau / etc. Di dalam nginx temukan folder conf lalu nginx.conf.
Arun

Jika ide di atas tidak berhasil, cari nginx.conf di dalam seluruh Linux, dengan alat pencarian apa pun.
Arun

`max_input_time = 24000`, 24000 dalam milidetik?
Rishabh Agrahari

1
@RishabhAgrahari Seconds! Ini menetapkan waktu maksimum dalam detik. Pengaturan default adalah -1, yang berarti bahwa max_execution_time yang digunakan. Setel ke 0 untuk memungkinkan waktu tak terbatas
Sean

18

Pertama edit file konfigurasi Nginx ( nginx.conf)

Lokasi: sudo nano /etc/nginx/nginx.conf

Tambahkan kode berikut:

http {
        client_max_body_size 100M;
}

Kemudian Tambahkan baris berikut di file konfigurasi PHP ( php.ini)

Lokasi: sudo gedit /etc/php5/fpm/php.ini

Tambahkan kode berikut:

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M

1
Saya membuka nginx.conffile saya seperti yang diinstruksikan, tetapi file itu kosong! Saya tidak mengharapkan itu, tetapi ketika saya menambahkan kode Anda, itu masih berfungsi ... seperti yang saya kira orang akan harapkan, tetapi untuk beberapa alasan saya tidak dan saya sangat senang ketika itu terjadi!
Andrew Fox

8

Silakan masukkan file nginx domain:

nano /etc/nginx/sites-available/domain.set

Tambahkan ke file kode ini

client_max_body_size 24000M;

Jika Anda mendapatkan kesalahan gunakan perintah ini

nginx -t

8

Saya menambahkan perubahan langsung ke virtualhost saya, bukan konfigurasi global nginx, seperti ini:

   server {
     client_max_body_size 100M;
     ...
   }

Dan kemudian saya mengubah params di php.ini, seperti komentar di atas:

   max_input_time = 24000
   max_execution_time = 24000
   upload_max_filesize = 12000M
   post_max_size = 24000M
   memory_limit = 12000M

dan yang tidak bisa anda lupakan adalah restart nginx dan php-fpm, di centos 7 seperti ini:

  systemctl restart nginx
  systemctl restart php-fpm

6
sudo nano /etc/nginx/nginx.conf

Kemudian tambahkan baris di bagian http

http {
    client_max_body_size 100M;
}

jangan gunakan MB hanya M.

systemctl restart nginx

lalu untuk lokasi php

sudo gedit /etc/php5/fpm/php.ini

untuk saat ini penggunaan maksimum php 7.0 atau lebih tinggi

sudo nano /etc/php/7.2/fpm/php.ini     //7.3,7.2 or 7.1 which php you use

periksa mereka yang meningkat dengan keinginan Anda.

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M

mulai ulang php-fpm

service php-fpm restart 

4

Dengan asumsi Anda telah membuat perubahan yang diperlukan pada file php.ini Anda:

Anda dapat mengatasi masalah ini dengan menambahkan baris berikut di file nginx.conf Anda yang ditemukan di jalur berikut:

/etc/nginx/nginx.conf

kemudian edit file menggunakan editor teks vim sebagai berikut:

vi /etc/nginx/nginx.conf

dan tambahkan client_max_body_size dengan nilai yang cukup besar, misalnya:

client_max_body_size 20MB;

Setelah itu pastikan Anda menyimpan menggunakan :xiatau:wq

Dan kemudian restart nginx Anda.

Itu dia.

Berhasil untuk saya, semoga ini membantu.


2

Saya mendapatkan unggahan bekerja dengan perubahan di atas. Tetapi ketika saya melakukan perubahan, saya mulai mendapatkan respons 404 dalam unggahan file yang membuat saya melakukan debugging lebih lanjut dan menemukan masalah izin dengan memeriksa nginx error.log

Larutan:

Periksa kepemilikan pengguna dan grup saat ini di / var / lib / nginx.

$ ls -ld /var/lib/nginx

drwx ------. 3 nginx nginx 17 5 Okt 19:31 / var / lib / nginx

Ini memberi tahu bahwa pengguna dan grup yang mungkin tidak ada bernama nginx memiliki folder ini. Ini mencegah pengunggahan file.

Dalam kasus saya, nama pengguna yang disebutkan di "/etc/nginx/nginx.conf" adalah

user vagrant; 

Ubah kepemilikan folder menjadi pengguna yang ditentukan di nginx.conf dalam hal ini gelandangan.

$ sudo chown -Rf vagrant:vagrant /var/lib/nginx

Verifikasi bahwa itu benar-benar berubah.

$ ls -ld /var/lib/nginx
drwx------. 3 vagrant vagrant 17 Oct  5 19:31 /var/lib/nginx

Muat ulang nginx dan php-fpm untuk sade yang lebih aman.

$ sudo service nginx reload
$ sudo service php-fpm reload

Kesalahan izin ditolak sekarang akan hilang. Periksa error.log (berdasarkan lokasi error_log nginx.conf).

$ sudo nano /path/to/nginx/error.log

0

Buka file /etc/nginx/nginx.conf Tambah atau ubahclient_max_body_size 0;


0

Menggunakan:

php -i

perintah atau tambahkan:

phpinfo();

untuk mendapatkan lokasi file konfigurasi.

Perbarui variabel ini sesuai kebutuhan dan server Anda

max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M

Di Linux Anda perlu me-restart layanan nginx / apache dan phpfpm agar pengaturan ini dimuat. Di xampp, ammps Anda dapat memulai ulang ini dari panel kontrol yang disertakan dengan aplikasi semacam itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.