XAMPP es un servidor web portable, con Apache+PHP+MySQL y otras utilidades que permiten montar rápidamente un servidor web en cualquier puesto. Tiene numerosas aplicaciones en distintos contextos: desde poder distribuir un archivo rápidamente por una red local utilizando un navegador o bien poder montar una plataforma en línea dentro del ámbito de la red local. De hecho, es la posibilidad de montar un servicio web dentro de una red local lo que hace que XAMPP sea atractivo: sólo hay que ir al panel de control y lanzar a ejecución Apache y MySQL.
Uno de los problemas más típicos en el uso de XAMPP es la limitación de tamaño de los archivos de subida. La configuración por defecto de XAMPP tiene una limitación de 2MB para el tamaño de los archivos subidos. Veamos a continuación cómo modificar este límite:
1.- Hay que modificar la configuración de PHP en XAMPP.
Muy fácil: sólo hay que ir a la carpeta xampp/php y editar el archivo php.ini. Es habitual que Windows esté configurado para abrir los archivos .ini con el Bloc de notas, así que sólo necesitaremos hacer doble click sobre el icono del archivo.
2.- Buscar y modificar el valor de tres cadenas.
Ya en el Bloc de notas, presionamos Ctrl+B para que aparezca el cuadro de búsqueda de texto y buscamos la cadena post_max_size
Modificamos entonces el valor en megas del tamaño máximo para POST. Esto debe ser un poco mayor del tamaño máximo de subida de archivos.
La explicación es sencilla: cuando se sube un archivo, se envía al servidor web mediante POST junto a información adicional que acompañe a los archivos que se suben, como puede ser campos de formulario y otros datos del protocolo HTTP. En una configuración normal, añadir un mega al tamaño máximo de subida de archivos que queramos debería ser suficiente.
Es más: el valor de post_max_size es el límite que no se puede superar. Si ponemos en este valor un límite de 10MB e intentamos subir de una vez dos archivos de 6MB no será posible realizar la operación, ya que los dos archivos se intentan subir con la misma petición POST y su tamaño total (12MB) excede el límite de 10MB.
Otra consideración más: post_max_size no puede llegar al límite de memoria asignado a PHP. La explicación es sencilla: conforme se suben datos mediante POST, éstos se copian en memoria para procesarlos. Para no consumir muchos recursos en el servidor, PHP tiene un límite de memoria utilizable, que en la configuración por defecto está en 128MB.
Un valor apropiado para un entorno XAMPP puede ser unos 26MB:
Repetimos la misma operación con el valor upload_max_filesize: lo buscamos primero con Ctrl+B y después definimos su valor. Siguiendo con lo anterior, un valor apropiado puede ser unos 25MB:
Finalmente, tenemos que modificar también el valor max_execution_time: lo buscamos primero con Ctrl+B indicando que busque “hacia arriba”. Este valor limita en segundos el tiempo máximo de ejecución de cualquier página. Hay que incrementarlo puesto que la subida de archivos de mayor tamaño seguramente requerirá mayor tiempo de subida para que se pueda completar.
En un entorno XAMPP en local para subida de archivos del tamaño fijado anteriormente, un valor apropiado puede ser 600:
3.- Guardar el archivo php.ini y reiniciar Apache.
Tras modificar estos valores, guardamos los cambios que hemos hecho en php.ini en el Bloc de notas y usando el panel de configuración de XAMPP, reiniciamos el servidor Apache.
Es posible que tengamos entonces que ir a la configuración de la aplicación que estemos usando en XAMPP para modificar el tamaño máximo de archivos según el nuevo valor que permite el entorno de ejecución. En Moodle, se permite por defecto el tamaño máximo que permita el servidor (Administración del sitio -> Seguridad -> Políticas del sitio) aunque si teníamos un curso creado y hemos modificado después el tamaño máximo de subida, tendremos que acceder a la configuración del curso para comprobar si el valor se ha modificado.