jueves, 20 de febrero de 2014

Revelaciones

Para el proyecto bíblico Revelaciones vamos a centrarnos inicialmente en modificar las restricciones de subida de archivos intrínsecas al servidor PHP.

La documentación nos la encontramos en http://php.net/manual/es/ini.core.php#ini.sect.file-uploads:

Opciones de configuración de subida de ficheros
NombrePor defectoCambiable
file_uploads"1"PHP_INI_SYSTEM
upload_tmp_dirNULLPHP_INI_SYSTEM
max_input_nesting_level64PHP_INI_PERDIR
max_input_vars1000PHP_INI_PERDIR
upload_max_filesize"2M"PHP_INI_PERDIR
max_file_uploads20PHP_INI_SYSTEM
He aquí una breve explicación de las directivas de configuración.
file_uploads boolean
Si permitir o no la subida de ficheros mediante HTTP. Véanse también las directivas upload_max_filesize, upload_tmp_dir, y post_max_size.
upload_tmp_dir string
El directorio temporal usado para almacenar ficheros durante el proceso de subida. Es necesario tener permisos de escritura para el usuario que está ejecutando PHP. Si no está especificado, PHP usará el predeterminado del sistema.
Si el directorio especificado no tiene permisos de escritura, PHP recurrirá al directorio temporal predeterminado del sistema. Si la directiva open_basedir está activada, al directorio predeterminado del sistema se le ha de permitir la subida de ficheros para que funcione.
upload_max_filesize integer
El tamaño máximo de un fichero subido.
Cuando se usa un integer, el valor del mismo es medido en bytes. También se puede usar la notación reducida, tal como se describe en esta FAQ.
max_file_uploads integer
El número máximo de ficheros a subir permitidos de forma simultánea. A partir de PHP 5.3.4, los campos de subida de ficheros dejados en blanco en el momento del envío no cuentan en este límite.
También hay que modificar la directiva max_post_size, pues ésta limita el tamaño total de archivos de subida. max_post_size debe ser mayor o igual que upload_max_filesize, y memory_limit debe ser mayor o igual que max_post_size.

La directivas ini_get('upload_max_filesize') e ini_get('max_file_uploads') dan los valores por defecto, 2M y 20, así pues hemos de modificar estos parámetros, y solo se puede hacer desde el php.ini. Seguimos los pasos de http://bajolinux.com/upload_max_filesize-php-modificar-el-tamano-maximo-subida-archivo/, pero teniendo en cuenta que en el mac php.ini se debería encontrar en /private/etc/php.ini, y si no, copiamos php.ini.default en esa ubicación (stackoverflow.com):

sudo cp /private/etc/php.ini.default /private/etc/php.ini

Modificamos los parámetros y reiniciamos apache (cyberciti.biz):

sudo apachectl -k restart

Y ahora ya aparecen los valores correctos:

upload_max_filesize: 10M
max_file_uploads: 30

No hay comentarios:

Publicar un comentario