Linux: ¿Dónde está php.ini?: Solución 1: Comando php
Una de las formas para saber qué fichero php.ini se está utilizando es ejecutar la herramienta de linea de comandos: php
Con le herramienta php, si utilizamos el parámetro -i, nos mostrará información y podemos filtrar la salida con grep para obtener la ubicación:
php -i | grep ‘php.ini’
Ejemplo:
Cómo editar el archivo php.ini para modificar upload_max_filesize
Entendiendo php.ini
El archivo php.ini
es un archivo de configuración que controla muchas de las características de PHP en un servidor. La directiva upload_max_filesize
específicamente limita el tamaño máximo de los archivos que se pueden subir a través de formularios HTML.
Localizando el archivo php.ini
La ubicación exacta de php.ini
puede variar dependiendo de tu sistema operativo, distribución de Linux y configuración del servidor. Algunas ubicaciones comunes incluyen:
- Servidores web como Apache:
/etc/php/7.4/apache2/php.ini
(donde 7.4 es la versión de PHP)/usr/local/lib/php/7.4/php.ini
- Servidores web como Nginx:
/etc/php/7.4/fpm/php.ini
Editando el archivo
- Obtener permisos de root: Para editar un archivo de configuración del sistema, necesitarás permisos de administrador. Utiliza el comando
sudo
para ejecutar el editor de texto con privilegios de root.Bashsudo nano /etc/php/7.4/apache2/php.ini
Nota: Reemplaza la ruta con la ubicación correcta de tu archivophp.ini
. - Buscar la directiva: Utiliza la función de búsqueda de tu editor de texto (por ejemplo, Ctrl+W en nano) para encontrar la línea que contiene
upload_max_filesize
. - Modificar el valor: Cambia el valor numérico después de
upload_max_filesize =
al tamaño deseado en megabytes (M), kilobytes (K) o bytes. Por ejemplo, para permitir subir archivos de hasta 64 megabytes:upload_max_filesize = 64M
- Guardar los cambios: Guarda el archivo. En nano, esto se hace presionando Ctrl+O, luego Enter para confirmar el nombre del archivo y Ctrl+X para salir.
Otras directivas a considerar
Además de upload_max_filesize
, es posible que también debas ajustar:
- post_max_size: Esta directiva limita el tamaño total de los datos que pueden ser enviados en una sola petición POST. Asegúrate de que este valor sea mayor o igual a
upload_max_filesize
. - memory_limit: Limita la cantidad de memoria que un script de PHP puede consumir. Si los archivos que estás subiendo son grandes y requieren mucho procesamiento, es posible que debas aumentar este valor.
Reiniciar el servidor web
Después de realizar los cambios, es necesario reiniciar el servidor web para que los nuevos valores de configuración surtan efecto. Los comandos para reiniciar el servidor web varían según la distribución y el servidor web que estés utilizando. Por ejemplo, para Apache:
Bash
sudo systemctl restart apache2
Consideraciones adicionales
- Seguridad: Aumentar los límites de subida de archivos puede presentar riesgos de seguridad. Asegúrate de que tu servidor esté protegido con un firewall y que tengas instalado un sistema de detección de intrusiones.
- Recursos del servidor: Aumentar los límites de subida de archivos puede consumir más recursos del servidor. Asegúrate de que tu servidor tenga suficiente capacidad para manejar archivos más grandes.
- Configuración del servidor web: Algunos servidores web pueden tener configuraciones adicionales que afectan los límites de subida de archivos. Consulta la documentación de tu servidor web para obtener más información.
Alternativas a modificar php.ini
- .htaccess: En algunos casos, puedes modificar los límites de subida de archivos a nivel de directorio utilizando el archivo
.htaccess
. Sin embargo, esta opción es menos flexible y puede no estar disponible en todos los entornos. - ini_set(): Puedes utilizar la función
ini_set()
en tus scripts PHP para cambiar los valores de configuración en tiempo de ejecución. Sin embargo, esta opción no es recomendable para cambiar los límites de subida de archivos de forma permanente.
Importante: Siempre haz una copia de seguridad del archivo php.ini
antes de realizar cualquier cambio. Si no estás seguro de cómo realizar estos cambios, consulta con tu proveedor de hosting o un administrador de sistemas.
¿CÓMO AUMENTAR EL LÍMITE DE UPLOAD EN PHP?
PHP
En ocasiones es posible que, si tratamos de subir un archivo de gran tamaño, se produzcan errores. Esto se debe a que PHP tiene limitada la subida de archivos por defecto y, para poder subir archivos de mayor tamaño, habrá que modificar algunos valores.
Para aumentar ese límite de tamaño hay que modificar las siguientes variables:
upload_max_filesize = 2M
post_max_size = 8M
- En upload_max_filesize puedes indicar el tamaño máximo de los archivos reemplazando el 2M por el valor que necesites.
- En post_max_size indica el tamaño máximo del post y el formulario de PHP cambiando el 8M por un valor más alto.
Existen otros límites que también influyen en el tamaño máximo que pueden tener los archivos y que es necesario revisar para que puedan aplicarse correctamente los cambios anteriores.
- Max_execution_time = 30. Este valor permite modificar el límite de subida en PHP en función de los bytes máximos que hayas establecido con anterioridad.
- Memory_limit = 64M. También es necesario aumentar este valor, ya que controla el máximo de memoria que se puede utilizar.
Cuando hayas aplicado los cambios, será necesario reiniciar el servicio. Puedes hacerlo con el comando:
/etc/init.d/apache2 restart
O, si lo prefieres, de esta otra forma:
# /etc/init.d/httpd restart
Ten en cuenta que la variable memory_limit tiene que ser mayor que post_max_size y esta, a su vez, tener un valor mayor que upload_max_filesize. Además, poner unos valores muy altos puede afectar negativamente al funcionamiento del servidor, ya que se consumirán más recursos.