El bajo límite del tamaño de subida de archivos en WordPress te impide subir archivos, plugins y temas de gran tamaño. Si estás construyendo un sitio web con mucho contenido multimedia, esto puede ser un obstáculo considerable. En estos casos es necesario aumentar el tamaño máximo de subida en WordPress o en tu servidor (o en ambos).
Dependiendo de tu proveedor de alojamiento y de tu servidor, existen muchas maneras de resolver este problema. En este artículo las cubriremos todas y te enseñaremos cómo aumentar el tamaño máximo de carga en WordPress rápidamente.
Aumentar el Tamaño Máximo de Los Archivos en WordPress Multisite
Si estás ejecutando una red de WordPress Multisite, entonces puedes modificar el tamaño máximo de los archivos a subir para tu red.
En primer lugar, dirígete a tu panel de administración de red y luego ve a la pantalla de Configuración > Configuración de red. Aquí, desplázate hacia abajo hasta que encuentres la sección Configuración de subida. En esta área encontrarás el campo de Max upload file size
.
El valor por defecto del tamaño máximo de archivo a subir en un multisitio de WordPress es de 1500 KB (~1,5 MB). Puedes cambiarlo a un valor más alto y hacer clic en el botón Guardar cambios.
Nota: No puedes eludir el límite de tamaño máximo de subida a nivel de servidor desde aquí. Si el límite que estableces aquí es mayor que el límite de tamaño máximo de subida del servidor, el servidor lo ignorará. Puedes utilizar los métodos descritos anteriormente para encontrar la configuración de tu servidor web.
En este caso, hemos fijado el nuevo tamaño máximo de los archivos subidos en 131072 KB (~128 MB).
También puedes limitar el tamaño total de los archivos subidos a un sitio individual en la red Multisite. Sin embargo, está desactivado por defecto.
Actualiza Tu Archivo ‘.htaccess’
Si tu servidor web funciona con Apache, puedes actualizar el archivo .htaccess de tu sitio para aumentar el tamaño máximo de subida en WordPress. Puedes encontrar tu archivo .htaccess en el directorio raíz del sitio de WordPress.
Según la documentación de PHP, tres directivas de PHP son responsables de cómo WordPress maneja las subidas. Son:
upload_max_filesize
post_max_size
memory_limit
Ya hemos hablado de ellas en la sección de Información Sobre el Estado del Sitio, más arriba. Sería útil que modificaras los valores de estas tres directivas para permitir el tamaño de tus archivos. Por ejemplo, si el archivo más grande que quieres subir es de 32 MB, te recomendamos la siguiente configuración:
upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
Fíjate que todos los valores utilizan M en lugar de MB. Así es como PHP maneja sus directivas.
Las subidas pueden contener información extra además del propio archivo. Por lo tanto, dar a todas las demás directivas relacionadas con las subidas un poco de espacio para respirar es una buena idea. Puedes leer nuestro tutorial en profundidad sobre cómo mejorar el límite de memoria PHP en WordPress para más información.
Accede a tu archivo .htaccess a través de FTP/SFTP o del administrador de archivos de tu proveedor de alojamiento.
Abre el archivo .htaccess con un editor de texto o de código y añade el siguiente código:
php_value upload_max_filesize 32M
php_value post_max_size 64M
php_value memory_limit 128M
php_value max_execution_time 300
php_value max_input_time 300
Puedes notar otras dos directivas PHP en el código anterior: max_execution_time
y max_input_time
. Definen el tiempo que el servidor emplea en una sola tarea PHP. Cuanto más grandes sean tus subidas, mayor será el tiempo empleado. Necesitas establecer sus valores a un número que sea apropiado para tu caso de uso.
Nota: Es posible que obtengas un error 500 Internal Server Error después de utilizar el método anterior. Lo más probable es que se deba a que tu servidor está ejecutando PHP en modo CGI. En tales casos, no puedes utilizar los comandos anteriores en tu archivo .htaccess.
Crear o Modificar el Archivo ‘php.ini’
El archivo php.ini es donde se definen los cambios en la configuración predeterminada de PHP. Normalmente, contiene directivas que definen los tiempos de espera de los archivos, el tamaño máximo de subida y los límites de recursos.
Usando SSH o FTP, puedes encontrar el archivo php.ini en tu directorio raíz de WordPress. En algunos casos, es posible que no lo encuentres allí. No te preocupes. Puedes crear un nuevo archivo con el mismo nombre en el directorio raíz de tu sitio.
Con un editor de código o de texto, añade el siguiente código a tu archivo php.ini existente o nuevo:
upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
No olvides guardar tu archivo después de hacer los cambios. Algunos hosts no permiten modificar la configuración de PHP a través de este método. En tal caso, puedes proceder a probar la siguiente solución en su lugar.
Crear o Modificar el Archivo ‘.user.ini’
Si tu proveedor de alojamiento ha bloqueado la configuración global de PHP, es posible que haya configurado el servidor para que funcione con archivos .user.ini en lugar de archivos php.ini.
Al igual que los archivos php.ini y .htaccess, puedes encontrar el .user.ini en el directorio raíz de tu sitio. Si no lo encuentras, puedes crear un nuevo archivo .user.ini en la misma ubicación. Sigue el mismo procedimiento descrito en el método anterior para crear un nuevo archivo php.ini.
A continuación, añade el siguiente código a tu archivo .user.ini:
upload_max_filesize = 32M
post_max_size = 64M
memory_limit = 128M
Verás que es una repetición del método anterior, solo que con un nombre de archivo diferente.
Cambiar las Opciones de PHP a Través de cPanel
Si tu proveedor de alojamiento utiliza el panel de control de cPanel para ayudarte a gestionar tu servidor y la configuración del sitio, puedes cambiar el tamaño máximo de los archivos cargados a través de su interfaz.
Para empezar, ve a tu panel de control de cPanel y selecciona la opción Seleccionar versión de PHP en la sección de Software.
Aquí puedes cambiar la versión actual de PHP de tu servidor y activar/desactivar muchas extensiones de PHP. Haz clic en el enlace Opciones del menú de navegación para ir al panel de opciones de PHP.
Desplázate hacia abajo aquí para modificar los valores de las directivas PHP como upload_max_filesize
, post_max_size
, memory_limit
, max_execution_time
, y max_input_time
.
Los valores máximos que puedes establecer aquí dependen de tu plan de alojamiento actual.
Si tienes alguna duda sobre estos valores, te sugerimos que te pongas en contacto con tu proveedor de alojamiento. La última versión del panel de control de cPanel guarda los cambios automáticamente, por lo que no tienes que hacer clic en nada. Pero si estás usando una versión más antigua de cPanel, asegúrate de hacer clic en el botón Guardar cambios.
Aumentar el Tamaño Máximo de Subida de Archivos en Nginx
Nginx es otro servidor web como Apache, pero también es mucho más. Normalmente, Nginx puede manejar más peticiones concurrentes que Apache, haciéndolo mucho más rápido. Kinsta utiliza Nginx para impulsar sus soluciones de alojamiento optimizadas para el rendimiento de WordPress.
Si estás ejecutando tu sitio de WordPress en Nginx, tendrás que modificar los archivos php.ini y nginx.conf. Ya nos hemos ocupado del primer archivo. El segundo se llama archivo de configuración de Nginx.
En un servidor Nginx, puedes encontrar el archivo php.ini en /etc/php/7.4/fpm/php.ini
. Dependiendo de la versión de PHP que hayas instalado, la ruta exacta puede variar ligeramente.
upload_max_filesize = 64M
post_max_size = 128M
No tienes que establecer el memory_limit
en el archivo anterior porque Nginx lo maneja de manera diferente. Para más información, puedes consultar este hilo de Stack Overflow. Después de guardar tu archivo php.ini, habilita los cambios reiniciando PHP-FPM usando el siguiente código en tu terminal:
sudo service php7.4-fpm restart
De nuevo, el código exacto puede variar ligeramente dependiendo de la versión de PHP instalada en tu servidor.
A continuación, utiliza la directiva client_max_body_size
de Nginx para establecer el nuevo límite de tamaño máximo de subida. Tienes que declarar esta directiva en el archivo nginx.conf, que puedes encontrar en /etc/nginx/nginx.conf
.
Puedes declarar esta directiva dentro del bloque http {...}
, del bloque server {...}
o del bloque location {...}
.
La configuración en el bloque http afectará a todos los sitios/apps alojados en este servidor.
http {
...
client_max_body_size 128M;
}
Definirlo en el bloque del servidor solo afectará a un sitio/aplicación específico alojado en este servidor.
server {
...
client_max_body_size 128M;
}
El bloque de ubicación solo afecta al directorio especificado (por ejemplo, archivos, cargas) dentro de un sitio/aplicación.
location /files {
...
client_max_body_size 128M;
}
No olvides guardar el archivo y reiniciar Nginx para aplicar los cambios. Para ello, puedes utilizar el siguiente comando en tu terminal:
sudo service nginx reload
Si eres un cliente de Kinsta, no puedes acceder a tu configuración de Nginx directamente. Sin embargo, puedes ponerte en contacto con nuestro equipo de soporte, y ellos podrán realizar rápidamente los cambios por ti.
Utiliza el Filtro ‘upload_size_limit’ de WordPress
WordPress 2.5 introdujo el filtro upload_size_limit, que filtra el tamaño máximo de subida permitido en php.ini. Incluso WordPress utiliza este filtro para mostrar el tamaño máximo de subida permitido, como en las pantallas de la biblioteca de medios y la información de estado del sitio.
A continuación hay un ejemplo de este filtro en acción del colaborador de WordPress Drew Jaynes. Define el límite de tamaño de subida para todos los roles que no son de administrador.
/**
* Filter the upload size limit for non-administrators.
*
* @param string $size Upload size limit (in bytes).
* @return int (maybe) Filtered size limit.
*/
function filter_site_upload_size_limit( $size ) {
// Set the upload size limit to 10 MB for users lacking the 'manage_options' capability.
if ( ! current_user_can( 'manage_options' ) ) {
// 10 MB.
$size = 1024 * 10000;
}
return $size;
}
add_filter( 'upload_size_limit', 'filter_site_upload_size_limit', 20 );
El código anterior utiliza la función manage_options
de WordPress para establecer este límite solo para los no administradores. Puedes modificar el código para que se dirija a roles o identificadores de usuario específicos. Lee nuestro artículo sobre roles y capacidades de WordPress para más información.
Utilizar un Plugin de WordPress
Meterse en el código usando SSH o FTP/SFTP no es para todo el mundo. Si no te sientes cómodo escribiendo o editando código, puedes usar un plugin de WordPress en su lugar.
Aquí usaremos el plugin WP Maximum Upload File Size. En el momento de escribir esto, es el único plugin actualizado en el repositorio de plugins de WordPress que te ayuda a conseguir esto.
Para empezar, instala y activa el plugin WP Maximum Upload File Size. A continuación, ve a la pantalla de configuración en tu panel de control de WordPress. Aquí podrás ver el tamaño máximo de los archivos que puedes subir, tanto por tu proveedor de alojamiento como por WordPress.
Aquí, puedes ver que el tamaño máximo del archivo a subir establecido por WordPress es menor que el establecido por tu proveedor de alojamiento. Por lo tanto, puedes aumentar el tamaño eligiendo el tamaño máximo de subida de archivos con el menú desplegable que se presenta.
Nota: Si quieres establecer un límite máximo de subida de archivos mayor que el establecido por tu proveedor de alojamiento, no es posible hacerlo a través de este plugin. Para ello, debes ponerte en contacto con tu proveedor de alojamiento.
Subir Archivos por FTP/SFTP
¿Sigues luchando con todos los métodos anteriores? ¿O con tu proveedor de alojamiento para que aumente el límite de tamaño de los archivos a subir? Siempre puedes subir archivos grandes a través de FTP/SFTP.
Si tienes muchos archivos grandes para subir, este es el método más rápido. Puedes leer nuestro tutorial en profundidad sobre cómo subir archivos de forma masiva a la biblioteca multimedia de WordPress para obtener más información.
A veces, WordPress no reconoce los archivos subidos por FTP/SFTP. Si ese es el caso, puedes utilizar el plugin gratuito Add From Server para importar los archivos subidos a WordPress.
Alternativamente, puedes hacer lo mismo directamente desde la línea de comandos importando imágenes usando WP-CLI. El comando wp media import
te permite crear archivos adjuntos desde archivos locales o URL.
No Edites el Archivo ‘wp-config.php’
Editar el archivo wp-config.php ya no funciona. Lo añadimos aquí porque hemos encontrado muchos tutoriales web que lo enumeran como una forma legítima de aumentar el tamaño máximo de subida en WordPress.
Se trata de ir al directorio raíz de tu sitio a través de FTP/SFTP o SSH y luego editar el archivo wp-config.php.
Se sugiere añadir el siguiente código al archivo wp-config.php:
@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '128M');
@ini_set( 'memory_limit', '256M' );
No funciona porque solo se puede utilizar la función ini_set() para establecer directivas PHP que pertenezcan al modo editable PHP_INI_ALL.
Como upload_max_size
y post_max_size
pertenecen al modo editable PHP_INI_PERDIR. Solo puedes definirlas a través de php.ini, .htaccess, http.conf o .user.ini.
Si ya has probado este método sin ver ningún resultado, ahora ya sabes por qué falla.
Verifica el Nuevo Tamaño Máximo de los Archivos de Tu Sitio WordPress
Por último, es el momento de verificar si el nuevo límite de tamaño máximo de archivo de subida está implementado en tu sitio de WordPress. Para ello, sigue el mismo procedimiento que hemos comentado anteriormente para comprobar el tamaño máximo de los archivos subidos en WordPress.
Ve a tu biblioteca de medios en el panel de control de WordPress y comprueba si el límite de tamaño máximo de los archivos subidos ha cambiado.
Sí, ha cambiado. ¡Eso es un éxito!
También puedes ir al panel de Información de Estado del Sitio y comprobar lo mismo en los desplegables de Manejo de Medios y Servidor.