Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa | |||
doc:tec:net:web_nginx:moodle:limite_grandes [2025/04/25 21:36] – borrado - editor externo (Fecha desconocida) 127.0.0.1 | doc:tec:net:web_nginx:moodle:limite_grandes [2025/04/25 21:37] (actual) – ↷ Página movida de doc:tec:net:srv_web:web_nginx:moodle:limite_grandes a doc:tec:net:web_nginx:moodle:limite_grandes fepg | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Moodle: Límite subida ficheros grandes ====== | ||
+ | |||
+ | 2014-Marzo-18, | ||
+ | |||
+ | Busco información acerca del límite del tamaño de los archivos a subir y en moodle dice: | ||
+ | | ||
+ | Esta opción especifica el tamaño máximo que deben tener los archivos subidos al sitio. Está limitada por los ajustes post_max_size y upload_max_size de PHP y por el ajuste LimitRequestBody de Apache. A su vez, la opción limita el rango de tamaños que pueden elegirse en el nivel de curso o de módulo. Si se elige la opción ' | ||
+ | | ||
+ | |||
+ | En UPC habilito SSH: | ||
+ | - Panel de control > Sistema > Terminal y SNMP > Habilitar servicio SSH (puerto 22) > Aplicar. | ||
+ | - Cierro sesión. | ||
+ | |||
+ | Entro por SSH como root/ | ||
+ | | ||
+ | cd / | ||
+ | find -name php.ini | ||
+ | | ||
+ | me sale esta ruta: | ||
+ | | ||
+ | ./ | ||
+ | | ||
+ | voy ahí y hago | ||
+ | | ||
+ | cat php.ini | ||
+ | | ||
+ | y localizo | ||
+ | | ||
+ | ... | ||
+ | post_max_size = 32M | ||
+ | ... | ||
+ | upload_max_filesize = 32M | ||
+ | max_file_uploads = 20 | ||
+ | ... | ||
+ | | ||
+ | Luego PHP tiene límite de 32 Mb para el tamaño del fichero. Y no debería estar dando problemas. | ||
+ | |||
+ | Pero cuando quiera recuperar un backup de un curso, éste va a ser mayor que esta cantidad por lo que voy a aumentarla a 256M. | ||
+ | |||
+ | Tengo que mirar Apache... | ||
+ | | ||
+ | ./ | ||
+ | | ||
+ | voy ahí y hago | ||
+ | | ||
+ | cat httpd.conf | ||
+ | | ||
+ | pero no tiene el parámetro LimitRequestBody (lo cual quiere decir que no tiene límite, ya me lo olía porque el PXE transfiere por http isos enormes sin problema), por lo que vuelvo al php.ini... Busco en foros y encuentro: | ||
+ | |||
+ | < | ||
+ | I changed the following entrys in my PHP.ini as follows | ||
+ | (on Debian it's located in / | ||
+ | |||
+ | Code: Select all | ||
+ | max_execution_time = 3600 | ||
+ | max_input_time = 3600 | ||
+ | memory_limit = 512M | ||
+ | post_max_size = 2000M | ||
+ | upload_max_filesize = 2000M | ||
+ | max_file_uploads = 20 | ||
+ | |||
+ | |||
+ | |||
+ | - max_execution_time and max_input_time sets the maximum time (in seconds) a php-process may live. | ||
+ | - memory_limit sets the maximum amount of memory a process may use. | ||
+ | - post_max_size and upload_max_filesize sets the max-filesize you can upload. (max_filesize is for one file, post_max may consist of several files) | ||
+ | Note: with 32Bit PHP only files <2GB are possible (silly php uses signed INT for filesize) | ||
+ | - max_file_uploads is the maximum number ob parallel file uploads | ||
+ | </ | ||
+ | |||
+ | En vista de esto creo que el problema está en lo que tarda la carga de un fichero grande, pues tengo actualmente un límite de: | ||
+ | | ||
+ | ... | ||
+ | max_execution_time = 240 | ||
+ | max_input_time = 60 | ||
+ | memory_limit = 128M | ||
+ | ... | ||
+ | | ||
+ | es decir un tiempo de entrada de 1 minuto. Si el servidor tiene mas tráfico seguro que corta esta transferencia. Voy a poner 3600 (60 minutos) en los tiempos, para ello copio el php.ini a / | ||
+ | | ||
+ | cp / | ||
+ | vi / | ||
+ | | ||
+ | para modificar algo se pulsa primero: ' | ||
+ | |||
+ | para salir grabando se pulsa: tecla Esc y luego ': | ||
+ | | ||
+ | cp / | ||
+ | | ||
+ | hago un cat para comprobar su contenido: OK. | ||
+ | |||
+ | Dentro de moodle, como administrador, | ||
+ | |||
+ | y ahí me fijo en los tiempos, que aún están con los valores viejos. | ||
+ | |||
+ | Reinicio UPC... | ||
+ | |||
+ | Se cambia: OK. | ||
+ | |||
+ | Ahora hay que probar a subir un fichero de unos 6M a ver si lo hace... Pruebo con un fichero de unos 5,7 MB y tarda 2 minutos y 15 segundos (Desde mi casa a través de internet y regresando)...Funciona!!!. | ||
+ | |||
+ | La cuestión era entonces el tiempo máximo asignado a la operación. Por esa misma regla de tres es de suponer que el tamaño máximo (32MB) tarde casi unos 15 minutos, con lo que valdría un tiempo de 15*60=900, pero mas vale asegurarse y dejo los 3600 (1 hora). | ||
+ | |||
+ | < | ||
+ | max_execution_time and max_input_time | ||
+ | |||
+ | These settings define the maximum lifetime of the script and the time that the script should spend in accepting input. If several megabytes of data are being transfered max_input_time should be reasonably high. You can override the setting in the ini file for max_input_time by calling the set_time_limit() function in your scripts. | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Solucionado 2014-Marzo-19 a las 00:10 | ||
+ | Si se actualiza PHP hay que acordarse de hacer este cambio para no tener problemas en moodle. | ||
+ | </ | ||