NuevoBlack Friday: 50 % de descuento en tu primer pago
Solución de problemas de WordPress

El archivo cargado supera la directiva upload_max_filesize

PHP rechazó el archivo antes de que WordPress vio un byte de él. El número en el mensaje es el techo de PHP, no WordPress.

The uploaded file exceeds the upload_max_filesize directive in php.ini.

Respuesta breve

Cuatro límites separados pueden producir esto, y elevar el equivocado nada cambia. Imprimir lo que PHP actualmente reporta para upload_max_filesize y post_max_size, comparar ambos contra su archivo, y recordar post_max_size debe ser el mayor de los dos o la carga falla silenciosamente en lugar.

Diagnóstico

Las causas más probables primero.

Revisa la lista en orden. Cada comprobación permite confirmar o descartar una causa antes de hacer cambios: las soluciones son distintas y adivinar cuesta más que ejecutar un comando.

CausaCómo comprobarloSolución
upload_max_filesize está por debajo del tamaño del archivoMedios → Añadir Nuevos impresos el máximo efectivo bajo la zona de gota. Si ese número es más pequeño que el archivo, éste es el.Elevar upload_max_filesize en la configuración PHP que realmente carga. Un valor en un php.ini el proceso no lee es la razón habitual que una edición parece no hacer nada.
post_max_size es menor que upload_max_filesizeLa carga falla con un array $_FILES vacío en lugar de este mensaje, o la pantalla de administración se recarga sin ningún error en absoluto.Establecer post_max_size arriba upload_max_filesize. PHP descarta todo el cuerpo de solicitud primero, por lo que un límite de archivo generoso detrás de un pequeño límite de cuerpo nunca se consulta.
El servidor web cubre la solicitud antes de que PHP se ejecuteEl navegador muestra un 413 de nginx o Apache en lugar de una pantalla de WordPress. Nada aparece en el registro PHP porque PHP nunca fue alcanzado.Elevar client_max_body_size en nginx, o LimitRequestBody en Apache, al menos el valor PHP. Este límite se aplica en Content-Length, por lo que rechaza la solicitud antes de que cualquiera de ellos sea desbordado.
Un límite de red multisiteNetwork Admin → Settings tiene un campo de “Tamaño de archivo de carga de Max” en kilobytes, y es inferior al límite de PHP.Aumente el ajuste de la red. Se aplica por sitio independientemente de lo que PHP permite, y se mide en KB mientras que cada otro límite aquí está en MB.
Guía

Solución paso a paso.

Los comandos requieren WP-CLI y acceso a la consola. Si no los tienes, cada paso explica cómo hacer lo mismo desde el panel o por SFTP.

  1. Pregunte a PHP lo que está haciendo, desde el interior de WordPress

    El valor que importa es el que tiene el proceso de ejecución, que no es necesariamente el de la php.ini que editaste.

    wp eval 'echo ini_get("upload_max_filesize"), " / ", ini_get("post_max_size"), PHP_EOL;'
  2. Encuentra qué php.ini que proceso carga realmente

    Una pila puede tener varios. Sólo el cargado tiene cualquier efecto, y el camino se imprimen para usted.

    php --ini | head -n 3
  3. Aumente ambos valores, manteniendo post_max_size más grande

    Reunirlos, subir uno sin el otro es la forma más común de que esto se ponga medio lleno.

    upload_max_filesize = 256M
    post_max_size = 320M
    memory_limit = 512M
  4. Elevar el límite del servidor web para coincidir

    PHP nunca ve una solicitud que el servidor web ya rechazó, así que esto tiene que moverse también.

    # nginx
    client_max_body_size 320m;
    
    # then
    nginx -t && systemctl reload nginx
  5. Confirme el nuevo techo es en vivo

    Releerlo de WordPress en lugar de confiar en el archivo. Si no ha cambiado, PHP-FPM no ha sido recargado.

    systemctl reload php*-fpm
    wp eval 'echo ini_get("upload_max_filesize"), PHP_EOL;'
En MagicWP

De esto se encarga la plataforma.

Los cuatro límites se establecen aquí en lugar de uno a la vez, y nginx se configura deliberadamente sobre cada valor que la pantalla de PHP Settings puede producir, por lo que el límite que puede ver y cambiar en el panel es el que realmente se aplica, en lugar de un capito de servidor web más pequeño silenciosamente sobrescribiéndolo. Cambiar es un campo de formulario, no una edición a un archivo cuya ubicación tiene que trabajar primero.

Preguntas frecuentes

Preguntas frecuentes.

Levanté upload_max_filesize y nada cambió. ¿Por qué?
O la edición entró en un php.ini el proceso no se carga, o PHP-FPM no fue recargado después, o post_max_size sigue siendo el menor de los dos. Leyendo el valor de nuevo desde el interior de WordPress en lugar de desde el archivo le dice que, porque informa lo que el proceso de ejecución tiene.
¿Cuál es la diferencia entre esto y “failed to write file to disquete”?
Este es un límite de tamaño que rechaza la solicitud. Ese es un problema del sistema de archivos: la carga llegó, y el directorio en el que debe aterrizar es completo, falta o no escribible por el usuario PHP.
¿Hay un máximo que no debería pasar?
No es difícil, pero muy grande carga a través de un navegador falla por otras razones — tiempo de salida y memoria en lugar de limitar. Pasado unos pocos cientos de megabytes, SFTP es más confiable que la biblioteca de medios.
¿Puedo elevar el límite para un sitio en una red multisitio solamente?
El ajuste de red se aplica a cada sitio, por lo que el enfoque práctico es establecer el valor de red a su mayor necesidad y controlar el resto con roles.