413 Solicitar entidad demasiado grande - Problema de carga de archivo

97

Estoy intentando cargar un archivo de 30 MB en mi servidor y no funciona.

  1. Cuando subo un archivo de 30 MB, la página carga " Página no encontrada "

  2. Cuando subo un archivo de 3 MB, recibo " 413 Request Entity Too Large " con nginx / 0.6.32

Estoy tratando de encontrar nginx para poder aumentar " client_max_body_size " pero no puedo encontrar nginx instalado en mi servidor. Incluso intenté ejecutar:

vi /etc/nginx/nginx.conf

o

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

para comprobar si existe el archivo de configuración, pero no pude encontrarlo en mi servidor.

¿Hay alguna forma de resolver este problema? O tengo que instalar nginx en mi servidor.

EDITAR:

He realizado todos los cambios necesarios en mis archivos php.ini,

post_max_size 128M
upload_max_filesize 100M
memory_limit 256M

Gracias, Raju

Raju Vishwas
fuente
por favor mirar esto enlaces tal vez ayudar a cyberciti.biz/faq/... rtcamp.com/tutorials/php/increase-file-upload-size-limit
Ashouri
Hola Mohammad, he buscado nginx pero no pude encontrarlo en mi servidor. Estoy seguro de que nginx no está instalado en mi servidor, así que no sé por qué recibo un mensaje de error que pertenece a Nginx
Raju Vishwas
En primer lugar, asegúrese mustbe ngix no ha instalado en su servidor, pero si usted completamente seguro, es quizás por razones de seguridad algunos administradores de servidor para los piratas informáticos confunden a utilizar este truco
Ashouri
¿ha probado un ps aux | grep nginxpara ver si se está ejecutando?
rpkamp
¿Usted ha intentado which nginx? Eso le dará la ubicación del ejecutable, no el archivo de configuración, pero al menos debería confirmar si nginx está instalado o no.
Doug McLean

Respuestas:

119

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

Edite el archivo conf de nginx:

nano /etc/nginx/nginx.conf

Agregue una línea en la sección http:

http {
    client_max_body_size 100M;
}

No use MB, no funcionará, ¡solo el M!

Además, no olvide reiniciar nginx

systemctl restart nginx
Dieter
fuente
Cuando hago esto, mi 413 se convierte en un 404. Estoy usando Amazon Linux en EC2. Además, el documento nginx muestra una 'm' minúscula. nginx.org/en/docs/http/…
nu everest
Está pidiendo una contraseña para cambiar el archivo. Pero no recuerdo haber puesto uno. ¿Me estoy perdiendo de algo?
Sooraj
1
La ruta para nano debe ser nano /etc/nginx/nginx.conf.
MaXi32
Me funcionó, pero NOTA: si su configuración ya tiene una http { }sección, ¡agregue el resto dentro de ella! Agregar una nueva http {}sección fallará y dará un "http" directive is duplicateerror en el registro de Nginx.
jerclarke
42

-en php.ini (dentro de /etc/php.ini)

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

-en nginx.conf (dentro de / opt / nginx / conf)

client_max_body_size 24000M

Está funcionando para mi caso

Arun
fuente
Hola Arun, el problema con nuestro servidor es que no puedo encontrar nginx instalado, pero todavía da un error de nginx
Raju Vishwas
encuentre nginx dentro de / opt o / etc. Dentro de nginx, busque la carpeta conf y luego nginx.conf.
Arun
Si la idea anterior no funciona, busque nginx.conf dentro de Linux completo, mediante cualquier herramienta de búsqueda.
Arun,
`max_input_time = 24000`, 24000 está en milisegundos?
Rishabh Agrahari
1
@RishabhAgrahari ¡Segundos! Esto establece el tiempo máximo en segundos. La configuración predeterminada es -1, lo que significa que en su lugar se utiliza max_execution_time. Establecer en 0 para permitir tiempo ilimitado
Sean
18

Primero edite el archivo de configuración de Nginx ( nginx.conf)

Ubicación: sudo nano /etc/nginx/nginx.conf

Agregue los siguientes códigos:

http {
        client_max_body_size 100M;
}

Luego agregue las siguientes líneas en el archivo de configuración PHP ( php.ini)

Ubicación: sudo gedit /etc/php5/fpm/php.ini

Agregue los siguientes códigos:

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M
Sanaulla
fuente
1
Abrí mi nginx.confarchivo según las instrucciones, ¡pero estaba vacío! No me esperaba eso, pero cuando agregué su código todavía funcionaba ... como supongo que uno esperaría, pero por alguna razón no lo estaba y ¡estaba muy feliz cuando lo hizo!
Andrew Fox
8

Ingrese el archivo nginx de dominio:

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

Agregar al archivo este código

client_max_body_size 24000M;

Si obtiene un error, use este comando

nginx -t
Cagdas
fuente
8

Agrego los cambios directamente a mi virtualhost en lugar de la configuración global de nginx, así:

   server {
     client_max_body_size 100M;
     ...
   }

Y luego cambio los parámetros en php.ini, como los comentarios anteriores:

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

y lo que no puedes olvidar es reiniciar nginx y php-fpm, en centos 7 queda así:

  systemctl restart nginx
  systemctl restart php-fpm
Evan
fuente
6
sudo nano /etc/nginx/nginx.conf

Luego agregue una línea en la sección http

http {
    client_max_body_size 100M;
}

no use MB solo M.

systemctl restart nginx

luego para la ubicación de php

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

para el uso máximo de hoy en día php 7.0 o superior

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

marque los que aumentan por su deseo.

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

reiniciar php-fpm

service php-fpm restart 
umar_sharif
fuente
4

Suponiendo que realizó los cambios necesarios en sus archivos php.ini:

Puede resolver el problema agregando la siguiente línea en su archivo nginx.conf que se encuentra en la siguiente ruta:

/etc/nginx/nginx.conf

luego edite el archivo usando el editor de texto vim de la siguiente manera:

vi /etc/nginx/nginx.conf

y agregue client_max_body_size con un valor lo suficientemente grande, por ejemplo:

client_max_body_size 20MB;

Después de eso, asegúrese de guardar usando :xio:wq

Y luego reinicie su nginx.

Eso es.

Funcionó para mí, espero que esto ayude.

Sansón 'Melah' Nyabanga
fuente
2

Conseguí que la carga funcionara con los cambios anteriores. Pero cuando hice los cambios, comencé a recibir una respuesta 404 en la carga de archivos, lo que me llevó a realizar una mayor depuración y descubrí que era un problema de permiso al verificar nginx error.log

Solución:

Verifique la propiedad actual del usuario y del grupo en / var / lib / nginx.

$ ls -ld /var/lib/nginx

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

Esto indica que un usuario y un grupo posiblemente inexistentes llamado nginx son los propietarios de esta carpeta. Esto impide la carga de archivos.

En mi caso, el nombre de usuario mencionado en "/etc/nginx/nginx.conf" era

user vagrant; 

Cambie la propiedad de la carpeta al usuario definido en nginx.conf en este caso vagrant.

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

Verifique que realmente haya cambiado.

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

Vuelva a cargar nginx y php-fpm para una seguridad más segura.

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

El error de permiso denegado debería desaparecer. Verifique el error.log (basado en la ubicación de nginx.conf error_log).

$ sudo nano /path/to/nginx/error.log
Nafas Sait
fuente
0

Abrir archivo /etc/nginx/nginx.conf Agregar o cambiarclient_max_body_size 0;

Tai Ho
fuente
0

Utilizar:

php -i

comando o agregar:

phpinfo();

para obtener la ubicación del archivo de configuración.

Actualice estas variables de acuerdo con su necesidad y servidor

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

En Linux, deberá reiniciar el servicio nginx / apache y phpfpm para que se carguen las nuevas configuraciones de ini. En xampp, ammps, puede reiniciarlos desde el panel de control que viene con dichas aplicaciones.

Saqib Ashraf
fuente