Hay una familia de errores que casi todo el que administra un sitio se cruza tarde o temprano. La pantalla en blanco al activar un plugin. El "el archivo supera el tamaño máximo permitido" al subir un video. La importación que se corta a la mitad sin explicación. Parecen problemas distintos, pero casi siempre son la misma cosa: PHP tiene límites configurados y tu sitio los está tocando.
La buena noticia es que son cinco o seis valores, se entienden en diez minutos, y la mayoría se ajusta desde el panel de control sin tocar código.
Por qué existen estos límites
Antes de subirlos todos al máximo, conviene entender para qué están. Un servidor compartido aloja muchas cuentas en la misma máquina. Si un solo sitio pudiera consumir toda la memoria disponible o dejar un proceso corriendo diez minutos, se llevaría puestos a todos los vecinos.
Los límites son un cinturón de seguridad. También sirven para atajar tu propio código con errores: un bucle infinito con límite de tiempo muere en treinta segundos; sin límite, tumba el servidor. Por eso la respuesta correcta casi nunca es "poné todo en ilimitado".
memory_limit: la memoria que puede usar cada proceso
Es cuánta memoria RAM puede consumir un único script antes de que PHP lo corte. El síntoma clásico es la pantalla completamente en blanco, o un error que dice que se agotó el tamaño de memoria permitido al intentar reservar unos bytes más.
Suele aparecer al activar un plugin pesado, al usar un constructor visual, al procesar imágenes grandes o al ejecutar un plugin de respaldos sobre un sitio que creció mucho.
Valores de referencia: 128 megabytes alcanza para un WordPress sencillo. Con un constructor visual y tienda, lo razonable son 256. Si necesitás más de 512 de forma habitual, el problema ya no es el límite: hay algo consumiendo memoria de más y conviene averiguar qué.
upload_max_filesize y post_max_size: el tamaño de lo que subís
Estos dos van juntos y confundirlos es el motivo por el que mucha gente cambia uno, no ve resultado y se frustra.
El primero define el tamaño máximo de un archivo individual. El segundo, el tamaño máximo del envío completo, que incluye el archivo más el resto de los datos del formulario.
La regla es simple: post_max_size tiene que ser siempre mayor que upload_max_filesize. Si ponés los dos en 64 megabytes, un archivo de exactamente 64 va a fallar, porque el envío total pesa un poquito más que el archivo solo. Dejá el de envío unos megabytes por encima.
Un detalle que confunde: WordPress muestra en la pantalla de subida el menor de los dos valores. Si ahí dice 8 megabytes y vos configuraste 64, es porque hay otro lugar donde quedó el valor viejo, o porque el tema o un plugin lo está limitando por su cuenta.
max_execution_time: cuánto puede tardar un script
Es el tiempo máximo, en segundos, que puede correr un script antes de que PHP lo mate. El síntoma es un proceso largo que se corta siempre alrededor del mismo momento: una importación que muere al treinta por ciento, un respaldo que nunca termina, una actualización masiva que queda a medias.
El valor por defecto habitual es 30 segundos. Para tareas de mantenimiento suele convenir 120 o 300. Pero ojo: si tu sitio necesita más de 300 segundos para responder una página normal, el límite no es el problema. Ahí hay consultas mal hechas o un servidor que no da abasto.
Un dato que vale oro: este límite no cuenta el tiempo que el script pasa esperando una respuesta de la base de datos o de un servicio externo. Por eso a veces un proceso se corta "antes" de lo que marca el reloj, y por eso conviene mirar también los límites del servidor web, que sí cuentan el tiempo total.
max_input_vars: el límite que rompe los menús
Este es el más difícil de diagnosticar porque no da error visible. Define cuántas variables puede recibir un formulario. Cuando se supera, PHP no avisa: simplemente descarta todo lo que sobra en silencio.
El caso típico es un menú de navegación con muchísimos elementos: lo guardás, no aparece ningún error, y al recargar faltan los últimos veinte ítems. Lo mismo pasa con paneles de opciones de temas muy cargados o con productos que tienen decenas de variaciones.
El valor por defecto suele ser 1000. Subirlo a 3000 resuelve prácticamente todos los casos reales.
Dónde se cambian estos valores
Hay varios lugares y no todos están disponibles en todos los hostings. El orden de preferencia es este.
Desde el panel de control. La mayoría de los paneles modernos incluyen una sección para elegir la versión de PHP y ajustar sus opciones desde un formulario. Es la forma más limpia, porque el cambio queda aplicado a toda la cuenta y no se pierde al actualizar el sitio.
Con un archivo de configuración propio. Un archivo de texto en la raíz del sitio con los valores deseados, uno por línea. Funciona en la mayoría de los hostings compartidos.
Desde el archivo de configuración de WordPress. Sirve para la memoria, agregando una línea que define el límite. Es útil cuando no tenés acceso a lo anterior.
Lo que conviene evitar es meter estas directivas en el archivo de reglas del servidor web: en muchas configuraciones modernas no solo no funciona, sino que provoca un error 500 en todo el sitio.
Cómo verificar que el cambio se aplicó
No te fíes de que el formulario diga que guardó. Creá un archivo con una sola línea que imprima la información de configuración de PHP, abrilo en el navegador y buscá los valores. Vas a ver el valor activo y también el configurado, que a veces difieren cuando algo lo está pisando.
Borrá ese archivo apenas termines. Expone información detallada de tu servidor que no le sirve a nadie más que a quien quiera atacarte. Si preferís no crearlo, la herramienta de salud del sitio de WordPress muestra los mismos valores desde el escritorio.
Cuando subir los límites deja de ser la solución
Hay un punto donde seguir estirando los números es tapar un problema real. Si necesitás 1024 megabytes de memoria para que cargue la portada, si un respaldo tarda más de diez minutos, o si tenés que subir el tiempo de ejecución cada dos semanas, lo que te está diciendo el sitio es que creció más que su plan.
Ahí la conversación deja de ser sobre configuración y pasa a ser sobre recursos: más memoria asignada, más potencia de procesamiento, menos cuentas compartiendo la máquina. Un plan semi dedicado o un VPS resuelven de raíz lo que ningún ajuste de configuración va a resolver.
Vale la pena mirar qué límites trae el plan de entrada antes de contratar. En BanaHosting, por ejemplo, los valores vienen configurados con margen para un WordPress con tienda y se pueden ajustar desde el propio panel, sin abrir un ticket para cada cambio. Eso es más importante de lo que parece: la diferencia entre resolver algo en dos minutos y esperar una respuesta de soporte.