Tamaño de archivo subido

De MoodleDocs

Restricciones al tamaño del archivo subido

Probablemente la pregunta más frecuente en los foros de uso de Moodle en inglés y en otros idiomas sea "¿Cómo aumento el tamaño máximo de archivos que pueden subirse?" Los cambios que necesitan hacerse son los mismos para todas las versiones de Moodle; solamente que en diferentes sistemas operativos (Linux versus Windows) necesitan hacerse en sitios diferentes. El tamaño de los archivos subidos está restringido en varias formas y cada una en esta lista restringe lo siguiente:

  1. A nivel del servidor
  2. A nivel del sitio Moodle
  3. A nivel del curso
  4. A nivel de actividad

Este es un tema polémico, principalmente porque uno pensaría que debería de poderse configurar dentro de Moodle. Desafortunadamente, esto no funciona así, estos son asuntos del Entorno que deben configurarse en las carpetas del servidor y de PHP; Moodle no puede trabajar afuera de Moodle mismo.

Acceso físico al servidor

Estas instrucciones asumen que Usted tiene acceso administrativo y físico completo a su servidor. Si Usted está empleando un servidor alojado por tercero (hosted), entonces Usted probablemente necesitará buscar otras formas para aumentar su tamaño de archivos subidos.

Hay aspectos positivos y negativos para ambos métodos que se describen abajo. Si Usted modifica el archivo php.ini entonces los cambios afectarán a todas las aplicaciones PHP de su servidor. Dado que PHP5 solamente puede tener un archivo php.ini en su servidor, el método por php.ini trabajará con todos los servidores web presentes. El método mediante .htaccess solamente afectará a la carpeta en donde se localiza y a sus subcarpetas, pero Usted necesita tener ciertas configuraciones habilitadas en Apache.

Como funciona la restricción del tamaño de archivo

El Host puede configurar un límite para el tamaño máximo de archivo subido dentro del Entorno del servidor, lo cual Usted podría anular si es que el Host se lo permitiera. PHP tiene una configuración que usa para limitar el tamaño del archivo que maneja al cargar. El Host tiene este número configurado dentro de su archivo php.ini basándose en sus percepciones particulares y las necesidades de su clientela. Este tamaño aparece en Moodle en la caja combo desplegable en Administración del sitio > Seguridad > Configuraciones de seguridad del sitio > Tamaño máximo de archivo subido. Usted puede cambiar esto en cualquier momento, para que se acomode a las necesidades de su sitio.

En la página de Configuraciones del Curso, existe otra restricción más que puede configurarse. De ninguna manera sería posible que la configuración del curso sobrepase la configuración del sitio, ni que la configuración del Sitio sobrepase las configuraciones de php.ini, que no pueden anular las configuraciones del Servidor. La única excepción a esta regla es que Usted puede manipular simultáneamente las configuraciondes del Servidor y de PHP, lo que se describe más adelante.

Modificando el archivo php.ini

Estas instrucciones le muestran cómo cambiar el tamaño de archivos subidos al editar su archivo php.ini en su servidor.

Principalmente en estas instrucciones se trata de lo siguiente:

En el archivo /etc/php5/apache2/php.ini Usted necesita cambiar "post_max_size", "upload_max_filesize" y "max_execution_time" a valores que se adecuen a sus necesidades usando cualquier Editor de texto con el que Usted esté acostumbrado.

Debajo encontrará instrucciones línea a línea para varias instalaciones de Moodle.

Instrucciones para Ubuntu Linux

Estas instrucciones asumen que Usted ha instalado el paquete Moodle estándar, PHP5 y Apache 2 mediante apt-get y que dejó todo como una instalación estándar por defecto. En caso de que Usted mismo hubiera compilado todo, ¡se supone que Usted sabrá donde quedó su archivo php.ini!

Usted necesita editar las siguientes tres configuraciones en su archivo php.ini file localizado en: /etc/php5/apache2/

Aquí están las instrucciones línea-a-línea:

  • Si tiene un escritorio gráfico, invoque el command prompt de Linux mediante Ctrl Alt T
  • Escriba "sudo nano /etc/php5/apache2/php.ini" (sin escribir las comillas)
  • Presione Ctrl W y escriba "post_max_size"
  • Cambie el valor presente al número de Mb que Usted quiere que su sitio acepte como archivos subidos (100 sería un buen comienzo)
  • Presione Ctrl W y escriba "upload_max_filesize"
  • Cambie el valor presente al número de Mb que Usted quiere que su sitio acepte como archivos subidos (100 sería un buen comienzo)
  • Presione Ctrl W y escriba "max_execution_time"
  • Cambie el valor a 600 (o algun otro valor razonable)
  • Presione Ctrl O
  • Presione Ctrl X
  • Escriba sudo apachectl restart

NGINX los administradores de sistemas también deberían de añadir client_max_body_size=XXX a la sección de "http" del archivo principal de configuración de nginx. (vea más información) si Usted tiene SSL, eso requerirá que Usted configure lo de arriba para el servidor y localización SSL también.

Ahora debería de aparecer su nuevo límite de archivo subido en Administración > Seguridad > Políticas del sitio > Tamaño máximo de archivo subido


Instrucciones para XAMPP o Mac

Estas son instrucciones acerca de cómo hacer ésto para Moodle en una Mac que usa el paquete descargable de muestra de XAMPP sample download package available. (Esto no es para un servidor Mac en producción.)

Nota: Pendiente de Traducir. ¡Anímese a traducir esta página!.     ( y otras páginas pendientes)

  • Close down Apache and MySQL if they are running via the XAMPP Control app and close the XAMPP Control app
  • Open Finder and go to Applications
  • Navigate down and open the folder XAMPP / xamppfiles / etc
  • Open the file php.ini with TextEdit (or another plain text editor)
  • Search for the post_max_size setting and up this from 128M (the default) to more; 500M is the maximum
  • Do the same for upload_max_filesize (make the numbers the same)
  • Search for the max_execution_time setting and up this to 300 (or more if you get timeouts on uploads)
  • Save the php.ini file
  • restart Apache and MySQL as usual


Note: You may get a "permission denied" error when saving the php.ini file unless you are logged in with admin access to your Mac. To work around this, you can set the /etc directory in which the php.ini file is located to be writable temporarily. For how to do that, see here or here.

Instrucciones para Windows XP y Windows Server 2003

Estas instrucciones presumen que Usted ha descargado el paquete ZIP más reciente de PHP 5.3.x Windows y que lo ha extraído a C:\PHP. Si Usted tuviera instalado PHP en otra localización entonces cambie todas las referencias hacia "C:\PHP" a la localización en donde Usted instaló PHP.

lightbulb.png Descargue e instale cualquier editor de texto que pueda guardar el archivo en el formatoUTF-8, Crimson Editor es un editor así, NotePad++ es otro, use alguno de estos en lugar de Wordpad o Notepad! El problema es que tanto WordPad como Notepad incluirpan caracteres ocultos que puede que no sean compatibles con los requisitos de PHP.
  • Abra C:\PHP
  • Haga Click derecho en el archivo php.ini en esta carpeta y elija "Abrir con..." seleccionando su editor favorito.
  • Presione Ctrl + F y escriba "post_max_size" (haga click en Find..-Buscar-.", donde sea necesario)
  • Cambie el valor al número de Mb que Usted quiere que su sitio acepte como subida de archivos
  • Presione Ctrl + F y escriba "upload_max_filesize" (haga click en Find..-Buscar-.", donde sea necesario)
  • Cambie el valor al número de Mb que Usted quiere que su sitio acepte como subida de archivos
  • Presione Ctrl + F y escriba "max_execution_time" (haga click en Find..-Buscar-.", donde sea necesario)
  • Cambie el valor a 600
  • Presione Ctrl + S o el botón para Guardar.
  • Salga del editor.
  • Reinicie su servidor web para recargar PHP con los cambios editados.
    • Para IIS
    • Abra el menú de Inicio en su servidor y seleccione "Ejecutar (Run)"
    • Escriba "iisreset /RESTART"
    • Para Apache 2 y Windows XP
    • Vaya a Inicio > Todos los programas > Apache > Reiniciar
    • Para Apache 2 y Windows Server
    • The following command will work as long as you have installed Apache 2 as a service on your Windows Server
    • Abra su menú de Inicio en su servidor y elija "Ejecutar (Run)"
    • Escriba "httpd -k restart"

Su nuevo límite de tamaño deberá de aparecer en Administración > Seguridad > Políticas del sitio > Tamaño méximo de archivo subido

NOTA: Estas instrucciones también cubren el instalador de Xampp para Windows. Sólamente remplace C:\PHP con C:\Moodle\server\php y reinicie su Moodle con un procedimiento normal de paro-arranque.

Modificando el archivo de configuración de Apache

Instrucciones para Ubuntu Linux

Usted puede también necesitar editar el archivo config.php del directorio moodle:

  • Desde el Ubuntu Software Center, instale gksu
  • Escriba "gksudo nautilus" para obtener un navegador de archivos con privilegios de root
  • Navegue hacia /etc/moodle
  • Abra el archivo apache.conf
  • Vaya a la sección de "<IfModule mod_php5.c>"
  • Cambie "php_value upload_max_filesize = 2M" a un valor más alto
  • Cambie "php_value post_max_size = 2M" a un valor más alto
  • Vaya a la sección de "<IfModule mod_php4.c>"
  • Cambie "php_value upload_max_filesize = 2M" a un valor más alto
  • Cambie "php_value post_max_size = 2M" a un valor más alto
  • Guarde el archivo
  • Escriba "sudo /etc/init.d/apache2 restart" para reiniciar apache

Modificando el archivo .htaccess

Nota: Pendiente de Traducir. ¡Anímese a traducir esta página!.     ( y otras páginas pendientes)

The following instructions will only work on an Apache web server, and also the Apache server must have Overrides allowed. Traditionally, you could only use .htaccess files when PHP was run as a module of Apache, but with Apache 2.2, this appears to no longer be the case. You can now use the .htaccess file in either module or cgi forms. As well, allowing the use of .htaccess files will cause a performance hit on the server, not a desirable outcome either - so check with your Host.

The .htaccess file is a distributed configuration file, that is, it can be used on a per-folder basis to configure each user's folder and sub-folders. You cannot alter the "AllowOverrides" directive in the Apache configuration file with a .htaccess file, only the Host can set that manually. Usually the Host will place a .htaccess file into your site Root if they do allow you to override the server settings. You can edit it the same as below, and the overrides you set will work. Alternatively, you may create your own .htaccess file in your text editor. It may also be called something else, like .config. If you have any file that starts with a ., you might want to open it in your text editor, just out of curiosity.

Create a file called .htaccess in Moodle's main directory (where 'index.php' is located, not the 'moodledata' directory) that contains the following information:

php_value upload_max_filesize 20971520
php_value post_max_size 20971520
php_value max_execution_time 600

20971520 es el valor numérico entero para 20Mb. Usted puede usar el sitio siguiente para convertir MegaBytes a Bytes.

Para una descripción más completa acerca de como editar el archivo .htacess vea la página Apache Tutorial: .htaccess files

Modificando la configuración de IIS 7.0/7.5(Windows Server 2008, Windows Server 2008 R2)

Primero aumente activity time out y request time out (lo que permite que los archivos grandes tengan éxito bajo conexiones lentas)

FastCGI Settings > Edit (Right-click on PHP application)
Set Process Model > Activity Timeout to '3600' (one hour)
Set Process Model > Request Timeout to '3600' (one hour)

Next set 'Maximum allowed content length'

Request Filtering > Edit Feature Settings:
Configure 'Maximum allowed content length' al tamaño de archivo (en bytes) deseado, por ejemplo: '536870912' para 512MB (el tamaño por defecto es de aproximadamente 28.6MB)

Servidor alojado (hosted)

Las cosas van a ser un poco diferentes con un servidor alojado por terceros (hosted) cuando le quiera cambiar el tamaño de archivos a subir y descargar. Probablemente le dirán que fabrique o que cambie el archivo .htaccess o que modifique al archivo php.ini.

lightbulb.png It might be a good idea to talk to with your service provider before you attempt anything. They probably have instructions on "how to" and may have their own limits for uploaded file size. Some hosts measure the file size in gigabytes and others in megabytes. If you are unhappy with their limits, then check your contract and consider changing your provider to one that has a limit and price that you like.

.htaccess con servidor alojado (hosted)

The one purpose of an .htaccess file is to override the the current limitations of both the server and the php.ini file. Your hosted server should inform you where that file needs be placed in your Moodle, but generally in the root is sufficient. They may already have a standard file you can use, if so, use it - but perhaps not.

To the .htaccess file add the lines:

 php_value upload_max_filesize 128M
 php_value post_max_size 128M
 

This will limit uploads to 128MB, but you can make it any size you agree with your provider. The wording may vary slightly, according to the demands of the server.

php.ini con servidor alojado (hosted)

Algunos servidores no le permitirán cambiar el .htaccess en Moodle y le indicarán utilizar un archivo php.ini para la configuración de PHP. Aquí podrá hacer uso de las instruciones en la sección de arriba, llamada Modificando el archivo php.ini.

Encuentre php.ini en la subcarpeta Moodle de su servidor. Debería hacer una copia de seguridad en su caso. Edite php.ini, localice la directiva "upload_max_filesize" y "post_max_size" en el código. Despueés simplemente mofique el número. En este ejemplo, el máximo de subida es de 20 Mb

upload_max_filesize = 20M
post_max_size = 20M
lightbulb.png ¿Aún no se ha modificado? Algunos host que utilizan cpanel tienen una configuración de su php sobre servicios/software. Utilice la opción php.ini y asegúrese de que encuentra la localización del archivo php.ini que se pretende modificar. Esto cambiará el archivo .htaccess en el mismo sentido y los límites del servidor para todos las aplicaciones que estén utilizando php
lightbulb.png ¿Aún no se ha modificado? Los administradores de sistemas NGINX deberían de añadir también client_max_body_size=XXX a la sección "http" del archivo de configuración principal nginx. (vea más información) si Usted tiene SSL, eso le requerirá a Usted que configure lo de arriba para el server y la location SSl también.

Vea también


Vea https://docs.moodle.org/24/en/File_upload_size