Aumentar el límite de upload en PHP

Sintoma

Es posible subir ficheros de tamaño limitado mediante webmail o PHP, pero si se intenta adjuntar un archivo en un correo o subirlo a una página web siendo éste de tamaño considerable es posible que surjan errores referentes al tamaño del archivo. Esto es debido a que PHP tiene limitada la subida de archivos de un determinado peso por defecto, y hay que modificar ciertos valores para poder aumentarlo.

Leer primero

Dependiendo bajo que modo esté corriendo PHP en la página web o el webmail que está teniendo problemas, hay que modificar el php.ini correspondiente. Por ejemplo, si está corriendo bajo Apache la ruta probablemente sea /etc/php5/apache2/php.ini y en el caso de CGI sería /etc/cgi/apache2/php.ini .

Solución

Las variables que habría que modificar para aumentar el límite serían las siguientes:

upload_max_filesize = 2M
post_max_size = 8M

  • upload_max_filesize: Deberás modificar 2M por el tamaño máximo deseado en MB
  • post_max_size: Deberás modificar 8M por el tamaño máximo deseado en MB + tamaño del formulario PHP (P.e.: texto del mensaje)

Adicionalmente existen otros limites que también afectan al tamaño de adjunto máximo que PHP es capaz de manipular y que deberás revisar para el correcto funcionamiento de los cambios realizados:

max_execution_time = 30
memory_limit = 64M

  • max_execution_time = 30: Si quieres subir el límite de subida en PHP necesitarás también aumentar este valor dependiendo del máximo de bytes establecidos anteriormente
  • memory_limit = 64M: Este valor habría que subirlo también debido a que controla la memoria máxima que un script puede consumir

Una vez realizados los cambios, hay que reiniciar el servicio web del Servidor en la Nube, normalmente se puede hacer con el comando:

/etc/init.d/apache2 restart

O bien:

/etc/init.d/httpd restart

En el caso de la variable memory_limit, esta debe ser mayor que la variable post_max_size.

Se ha de tener en cuenta a la hora de realizar estos cambios, que la variable post_max_size debe ser mayor que upload_max_filesize.

Hay que tener cuidado a la hora de manipular dichas variables y no especificar límites muy altos ya que esto puede consumir rápidamente los recursos de tu servidor.

Para comentar sobre este artículo, rellena el formulario. Los campos marcados con un asterisco (*) son obligatorios.


*