Apache y PHP: aumentar tamaño máximo de subida de archivos
PHP y Apache2 tienen una restricción que viene por defecto, limitan el tamaño máximo de archivo y el limite de subida de archivos.
Cuando necesitemos cargar algún archivo a nuestro servidor web. Esto se pone de manifiesto en aplicaciones web donde necesitamos subir archivos (texto, documentos, imágenes, etc...) y éstos son más grandes que el límite estándar, por defecto es de 2 y 8 MB respectivamente.
Cuando usamos algún CMS como por ejemplo: Joomla, WordPress o Drupal, o aplicaciones como eXtplorer, al subir archivos grandes, el resultado casi siempre es un mensaje de error.
Existen tres métodos para solucionar este problema. Aunque te aconsejamos el primer método (Modificar el php.ini global) o el último método (usar el archivo .htaccess)
Solución 1: Modificar php.ini global
La mejor solución de todas (solo se puede usar en servidores propios), modificar el archivo de configuración global de PHP, llamado php.ini.
Primero: Estamos usando el Servidor Debian GNU/Linux 10 Buster. Abrimos una consola de comando en el servidor, con un usuario administrador.
Segundo: Vamos a usar el siguiente comando para saber que versión de php tenemos activa en este momento, (porque puede suceder y es muy normal que tengamos varias versiones de php instaladas en el servidor, aunque solo se puede activar una versión de php a la vez)
php -v
Tercero: Para poderlo modificar, editamos el archivo php.ini que se encuentra en la siguiente carpeta:
Usamos el siguiente comando para ir a dicha carpeta:
Entonce vamos a editarlo, para ello usamos el siguiente comando:
post_max_size = 8M
y cambiamos el valor que trae por defecto, por el valor que necesitemos, (para este manual, de ejemplo vamos a usar el doble del que trae por defecto) es decir los cambiamos a 16M
upload_max_filesize = 2M
y cambiamos el valor que trae por defecto, por el valor que necesitemos, (para este manual, de ejemplo vamos a usar el doble del que trae por defecto) es decir los cambiamos a 4M
Una vez guardado los cambios pulsamos la combinación de teclas Ctrl + X (tecla control mas tecla x) para salir.
Cuarto: Por ultimo para que los cambios realizados surtan efectos, tenemos que reiniciar el servidor web Apache2, usando el siguiente comando:
service apache2 restart
Si volvemos a intentar subir un archivo con la misma aplicación, podemos ver como ahora hemos aumentado el tamaño de subida al doble.
Solución 2: Usar php.ini local
Básicamente es hacer lo mismo que la solución anterior, pero tiene grandes diferencias, como que no se modifica el php.ini global, si no que creamos un php.ini local, ademas el php.ini local tiene preferencia sobre el php.ini global.
Este método tiene algunas restricciones:
- Solo se recomienda usarlo en servidores compartidos contratados.
- Los efectos del 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 tenemos que crear un php.ini en cada directorio donde queramos obtener el efecto deseado.
- Puesto que cada php.ini local tiene preferencia sobre el php.ini global, éstos deben incluir ciertas directivas de compatibilidad necesarias para el web hosting que tengamos contratado, por lo que es necesario consultar al proveedor por dichas directivas.
- Se crea el archivo php.ini y se guardan los cambios. Los cambios aplicados surten efectos, automáticamente al guardar el archivo php.ini
Nota: Para un servidor local de pruebas, no se recomienda esta opción.
Solución 3: Usar .htaccess
Creamos o modificamos, en caso de que ya exista el archivo .htaccess en el directorio raíz de nuestro servidor web apache2.
También podemos crear el archivo .htaccess, en la raíz de cualquiera de los CMS: Joomla, Wordpress, Drupal etc..., o de la aplicación o aplicaciones web que usemos en nuestro servidor.
En el archivo .htaccess tenemos que añadir las siguientes líneas (modificar los valores según nuestras necesidades):
php_value upload_max_filesize 16M
php_value post_max_size 4M
php_value memory_limit 128M
Listamos la ventajas de usar .htaccess
- Es recursivo a directorio y subdirectorio desde la raiz donde se encuentre el archivo .htaccess (no tiene limites)
- No hay limites de tamaños de archivos (cada uno puede usar el que le interese)
- Generalmente, se usa en la raíz del CMS para que tenga efectos en todas las carpetas y subcarpetas de dicho cms.
- Por defecto se puede usar en la raíz del servidor web apache2
- Los cambios surten efectos nada mas guardar el contenido del archivo .htaccess
- El archivo .htaccess prevalece sobre el archivo php.ini global
.
2 comentarios:
Buenas noches.
Ante todo gracias por el post.
He modificado el archivo php.ini sin resultado y también el .Htcacces y sigo sin poder cambiar el límite de 8mb.
Estoy en local, sabes porque puede ser?
Muchas gracias, un saludo
Buenas noches,
Primero Gracias por tu post.
He modificado el php.ini y el .htcacces y sigo cn la restricción de 8mb. Estoy en local.
Sabes porque puede ser?
Gracias y un saludo
Publicar un comentario