Está en la página 1de 6

Una restricción lógica, pero molesta a veces, es el límite máximo en tamaño cuando deseamos

Escrito por mangel

Publicado: Jueves, 14 Febrero 2013 11:00 cargar algún archivo a nuestro servidor web. Lo anterior se hace más notable si estamos desarrollando una aplicación web donde los usuarios requieran subir archivos (ya sea imágenes, documentos, paquetes comprimidos, etc) y éstos son más grandes que el límite estándar, el cual normalmente es de 2 MB.

Otro escenario: Si administras algún sitio basado en un CMS como WordPress, Drupal o Joomla, y quieres usar sus herramientas propias para subir archivos grandes, el resultado será un mensaje de error.

Aqui os dejo varias formas de solucionar esto:

Solución 1: Modificar php.ini global

La mejor solución de todas (desgraciadamente no todos pueden implementarla): modificar el archivo principal de configuración de PHP. Si tenemos un servidor local, o hemos contratado un servidor dedicado, es casi un hecho que podemos modificar el php.ini global, pero si tenemos un servidor compartido (sumamente comunes en la web), esta solución normalmente no es posible (algunos web hostings si lo permiten).

Dependiendo de tu distro, debemos editar el archivo php.ini con alguno de los siguientes comandos:

En ArchLinux:

con alguno de los siguientes comandos: En ArchLinux : $ sudo nano /etc/php/php.ini En Ubuntu y
con alguno de los siguientes comandos: En ArchLinux : $ sudo nano /etc/php/php.ini En Ubuntu y

$ sudo nano /etc/php/php.ini

En Ubuntu y Debian:

$ sudo nano /etc/php5/apache2/php.ini

En Fedora y CentOS:

$ sudo nano /etc/php.ini

Si estas familiarizado mas con otro editor que no sea nano, usa tu editor habitual, los mas comunes son vim, nano, o gedit.

habitual, los mas comunes son vim , nano , o gedit . Dentro de php.ini ,
habitual, los mas comunes son vim , nano , o gedit . Dentro de php.ini ,

Dentro de php.ini , localiza el texto upload_max_filesize y asígnale un valor superior al que ya tiene, por ejemplo:

upload_max_filesize = 10M

al que ya tiene, por ejemplo: upload_max_filesize = 10M También te recomiendo aumentar los valores de
al que ya tiene, por ejemplo: upload_max_filesize = 10M También te recomiendo aumentar los valores de
al que ya tiene, por ejemplo: upload_max_filesize = 10M También te recomiendo aumentar los valores de
al que ya tiene, por ejemplo: upload_max_filesize = 10M También te recomiendo aumentar los valores de

También te recomiendo aumentar los valores de post_max_size (tamaño máximo de carga por envío, debe ser igual o mayor al especificado en upload_max_filesize ), e incluso el de max_execution_time (tiempo máximo en segundos que el servidor esperará al script para que termine su ejecución, en este caso, la carga de archivos). Por ejemplo:

que el servidor esperará al script para que termine su ejecución, en este caso, la carga

upload_max_filesize = 10M post_max_size = 20M max_execution_time = 120

Guarda el archivo, y sal del editor. Para que los cambios aplicados funcionen, basta con reiniciar Apache.

En ArchLinux:

$ sudo /etc/rc.d/httpd restart

En Debian y Ubuntu:

$ sudo /etc/init.d/apache2 restart

En Fedora y CentOS:

$ sudo /etc/init.d/httpd restart

Solución 2: Usar php.ini local

Básicamente es hacer lo mismo que la solución anterior, la diferencia es que no se modifica el php.ini global, si no que creamos un php.ini local. Este método tiene algunas limitantes:

un php.ini local . Este método tiene algunas limitantes: Los efectos del php.ini local no son
un php.ini local . Este método tiene algunas limitantes: Los efectos del php.ini local no son
un php.ini local . Este método tiene algunas limitantes: Los efectos del php.ini local no son

Los efectos del php.ini local no son recursivos a los subdirectorios en donde se encuentre php.ini local no son recursivos a los subdirectorios en donde se encuentre

ubicado, así que no basta crearlo en el directorio raíz de nuestro servidor, si no que debemos especificar un php.ini en cada directorio donde queramos obtener el efecto deseado.

en cada directorio donde queramos obtener el efecto deseado. Puesto que cada php.ini local se toma
en cada directorio donde queramos obtener el efecto deseado. Puesto que cada php.ini local se toma
en cada directorio donde queramos obtener el efecto deseado. Puesto que cada php.ini local se toma

Puesto que cada php.ini local se toma en cuenta en vez del php.ini global , éstos deben incluir php.ini local se toma en cuenta en vez del php.ini global, éstos deben incluir

ciertas directivas de compatibilidad necesarias para el web hosting que tengas contratado, por lo que es necesario consultar a tu proveedor por dichas directivas.

es necesario consultar a tu proveedor por dichas directivas. Un ejemplo de php.ini local , con

Un ejemplo de php.ini local, con directivas de compatibilidad y las que nosotros necesitamos, sería:

zend_extension = /usr/local/ioncube/ioncube.so register_globals = Off magic_quot es_gpc = Off session.save_path = /tmp memory_limit = 200M upload_max_filesize = 10M post_max_size = 20M max_execution_time = 120

Pero repito, es muy importante consultar la documentación de tu proveedor de hosting.

Solución 3: Usar .htaccess

Crea (o modifica, en caso de que ya exista) el archivo .htaccess en el directorio raíz de tu sitio, blog o aplicación web, o bien, en el directorio donde deseas que las directivas tengan efecto.

Agrega las siguientes líneas (modifica los valores según lo requieras):

líneas (modifica los valores según lo requieras): php_value upload_max_filesize 10M php_value post_max_size

Nota:

En algunos ejemplos mencionados, he usado sudo, el motivo es porque como ya sabreis algunos son comandos que deben ejecutarse con permisos de administrador. Si no tienes configurado tu usuario para utilizar sudo, entonces debes ejecutar dichos comandos como root.

Buscar

Buscar