Configurar PHP en hosting cPanel: límites, extensiones y versión
PHP es la base de WordPress, Drupal y miles de aplicaciones web. Configurarlo correctamente en cPanel significa la diferencia entre un sitio rápido y seguro, y un sitio que falla con errores criptográficos. Guía avanzada para dominar cada parámetro.
¿Qué es PHP y por qué versionar?
PHP es un lenguaje de programación que tu servidor ejecuta para generar contenido dinámico. A diferencia de HTML estático, PHP puede:
- ✓ Acceder a base de datos: leer/escribir información de usuarios, posts, productos
- ✓ Ejecutar lógica: validar formularios, calcular precios, gestionar sesiones
- ✓ Generar HTML dinámico: cada visita obtiene contenido diferente sin HTML múltiples
- ✓ Gestionar seguridad: autenticación, permisos, validación de entrada
¿Por qué versionar PHP? Cada versión trae mejoras de seguridad, rendimiento y nuevas funciones. PHP 8.0+ es hasta 2x más rápido que 7.4. Pero plugins antiguos pueden romper con versiones nuevas. Por eso: actualiza cuando puedas, pero prueba primero.
Versiones PHP en 2026
- PHP 7.4: Deprecated. No recibe actualizaciones. Usa solo si plugins antiguos lo requieren. Riesgo de seguridad.
- PHP 8.0: Legacy. Recibe correcciones de seguridad pero no nuevas features. Evita si puedes.
- PHP 8.1: Estable. Buena compatibilidad con plugins modernos. Seguro y rápido. Buena opción.
- PHP 8.2: Recomendado. La mejor opción en 2026. Rendimiento excelente, seguridad completa, compatibilidad con 99% de plugins.
- PHP 8.3: Muy nueva. Cambios de sintaxis que pueden romper plugins. Espera a Q3 2026 si necesitas estabilidad.
- PHP 8.4: Cutting edge. Solo si sabes lo que haces. Muchos plugins aún no compatibles.
Cambiar versión PHP en cPanel (MultiPHP Manager)
El MultiPHP Manager es la forma más sencilla de cambiar versión sin tocar línea de comando.
- 1. Accede a cPanel con tu usuario
- 2. Busca "MultiPHP Manager" en la barra de búsqueda (software section)
- 3. Verás una lista de tus dominios con la versión PHP actual (ej: 8.1)
- 4. Haz clic en el dropdown de versión y selecciona 8.2 (o la que necesites)
- 5. Haz clic en "Apply" y espera 10-30 segundos
- 6. Listo. Abre tu sitio en navegador. Si todo funciona, la migración fue exitosa.
⚠️ Antes de cambiar: Haz backup de la base de datos (desde phpMyAdmin). Si algo falla, puedes restaurar rápidamente. Algunos hosting lo hacen automático, pero mejor asegurate.
¿Qué pasa si cambio de versión?
- ✓ El cambio es inmediato — no necesitas reiniciar servidor
- ✓ Diferentes dominios pueden usar diferentes versiones (ej: blog en 8.2, tienda en 8.1)
- ✓ Puedes cambiar atrás si algo falla
- ✗ Riesgo: Algunos plugins/temas viejos pueden no funcionar con versión nueva
Acceder y editar php.ini
El archivo php.ini controla todos los parámetros de PHP. Hay varias formas de acceder:
Opción 1: Editor de configuración en cPanel (sencillo)
- 1. cPanel → busca "PHP Configuration Editor" o "Select PHP Version"
- 2. Algunos hosting lo llaman "PHP Selector" — click en "Options"
- 3. Verás un formulario visual para editar parámetros. Cambia lo que necesites.
- 4. Click en "Save". Los cambios aplican en minutos.
Opción 2: Archivo user.ini (para directorios específicos)
Si cPanel no permite editar php.ini (hosting muy restrictivo), puedes crear user.ini en la raíz de tu dominio:
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300 Nota: user.ini solo funciona en hosting con PHP-FPM. Crea el archivo con tu cliente FTP o en el File Manager de cPanel. Los cambios aplican en 1-2 minutos.
Opción 3: .htaccess (si no está disponible php.ini/user.ini)
En la raíz de tu dominio, añade:
php_value memory_limit 256M
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 300 ⚠️ Limitación: No todas las directivas PHP funcionan en .htaccess (depende del host). user.ini es más fiable.
Parámetros clave y valores recomendados
Estos son los 10 parámetros más importantes que debes conocer:
| Parámetro | Valor por defecto | Recomendado | ¿Qué hace? |
|---|---|---|---|
| memory_limit | 128M | 256M–512M | RAM máxima que un script puede usar |
| upload_max_filesize | 2M | 50M–100M | Tamaño máx. de archivo subido |
| post_max_size | 8M | 100M–128M | Tamaño máx. de datos POST (siempre ≥ upload_max_filesize) |
| max_execution_time | 30s | 60–300s | Segundos máximos que un script puede ejecutarse |
| max_input_vars | 1000 | 5000–10000 | Campos de formulario máximos procesables |
| display_errors | Off | Off (Prod) | Mostrar errores en pantalla (security risk en producción) |
| error_reporting | E_ALL | E_ALL | Qué errores registrar en logs |
| opcache.enable | On | On (siempre) | Cachea el código compilado (crítico para rendimiento) |
| opcache.memory_consumption | 128M | 256M–512M | RAM del OPcache (más = más código cacheado) |
| max_file_uploads | 20 | 50–100 | Archivos simultáneos que puedes subir |
💡 Consejo pro: Para WordPress con uploads frecuentes, usa: memory_limit=512M, upload_max_filesize=100M, post_max_size=128M, max_execution_time=300. OPcache debe estar siempre ON.
Extensiones PHP: activar/desactivar
Las extensiones son módulos que expanden las capacidades de PHP. Algunas son esenciales, otras opcionales.
Extensiones recomendadas (siempre activadas)
- MySQLi: Conexión a MySQL/MariaDB. Crítica para WordPress. Siempre debe estar ON.
- GD: Procesamiento de imágenes (redimensionar, cropear). Necesaria para galerías y thumbnails.
- cURL: Hacer requests HTTP desde PHP (llamadas a APIs). Esencial para integraciones.
- mbstring: Manejo de caracteres multibyte (acentos, idiomas). Necesaria para sitios multiidioma.
- OpenSSL: Seguridad (HTTPS, encriptación). Crítica en 2026 (todo debe ser HTTPS).
Extensiones opcionales (según necesidad)
- Imagick: Procesamiento avanzado de imágenes (alternativa a GD). Más potente pero consume más recursos.
- OPcache: Crítica para rendimiento. Cachea bytecode compilado. Hace PHP 2-3x más rápido.
- Zip: Crear/leer archivos ZIP (backups, descargas comprimidas).
- Memcached: Cache en memoria (para aplicaciones de alto tráfico). No necesaria en hosting compartido.
- Redis: Sistema de caché distribuido. Avanzado, solo para aplicaciones de escala.
Cómo activar/desactivar extensiones en cPanel
- 1. cPanel → busca "Select PHP Version" o "MultiPHP Manager"
- 2. Click en "Options" al lado de tu dominio
- 3. Verás checkboxes para cada extensión. Marca/desmarca según necesites.
- 4. Click en "Save". Cambios aplican en 1-2 minutos.
Consejo: Si no sabes si activar algo, mejor no lo actives. Solo activa cuando lo necesites (ej: activar Imagick si un plugin lo requiere).
Errores comunes y soluciones
Fatal error: Allowed memory size of X bytes exhausted
Causa: El script superó el memory_limit.
Solución: Aumentar memory_limit a 256M, 512M o más. O optimizar el código (no cargar todo en RAM a la vez).
The uploaded file exceeds the upload_max_filesize
Causa: Intenta subir un archivo más grande que upload_max_filesize.
Solución: Aumentar upload_max_filesize y post_max_size. Asegúrate que post_max_size ≥ upload_max_filesize.
Maximum execution time of 30 seconds exceeded
Causa: Un proceso tardó más de max_execution_time.
Solución: Aumentar max_execution_time a 60-300s. O optimizar el código (procesar en background con cron, no en request HTTP).
Warning: mysqli_connect(): Access denied for user
Causa: Credenciales de base de datos incorrectas (user, password, host).
Solución: Verificar wp-config.php (WordPress) o config.php. Asegúrate que el usuario tiene permisos en esa BD. Revisar en cPanel → MySQL Databases.
The page appears blank (white screen of death)
Causa: Error PHP pero display_errors está OFF (lo correcto en producción).
Solución: Revisar los logs de error en cPanel → Raw Access Logs o error_log. O activar display_errors temporalmente para debuggear.
PHP-FPM vs CGI: qué es y por qué importa
Estos son dos modos diferentes en los que PHP puede ejecutarse en el servidor:
CGI (Common Gateway Interface)
- • Lento: Un nuevo proceso PHP por cada request (overhead enorme)
- • Ineficiente: Consume mucha CPU incluso en baja carga
- • Legacy: Casi no se usa en 2026. Algunos hosting muy viejos aún lo tienen.
PHP-FPM (FastCGI Process Manager)
- • Rápido: Mantiene procesos en memoria listos para requests. Reutiliza procesos.
- • Eficiente: Mucho menos overhead que CGI. Mejor uso de recursos.
- • Estándar: Todos los hosting modernos usan PHP-FPM en 2026.
- • Beneficio clave: Permitido en usuario.ini (CGI no lo permite)
¿Cuál tengo? Tu hosting probablemente usa PHP-FPM. Compruébalo: cPanel → Select PHP Version. Si ves "PHP-FPM", tienes FPM. Si ves solo "CGI", pide al soporte que lo cambie (no debería costar extra).
OPcache: el turbo de PHP
OPcache es probablemente la extensión más importante para rendimiento. Debe estar siempre activada.
¿Cómo funciona OPcache?
Cada vez que PHP ejecuta un .php:
- 1. Lee el archivo del disco (lento)
- 2. Lo compila a bytecode (proceso lento)
- 3. Lo ejecuta
Con OPcache activa:
- 1. Primer request: Compila y cachea el bytecode en RAM
- 2. Requests posteriores: Reutiliza el bytecode cacheado (sin compilar de nuevo)
- 3. Resultado: 2-3x más rápido.
Configurar OPcache óptimamente
En php.ini o user.ini, set:
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1 Explicación:
- memory_consumption=256: 256MB de RAM para cache (aumentar si tienes sitio grande)
- interned_strings_buffer=16: 16MB para strings (mejora memoria con muchos strings iguales)
- max_accelerated_files=10000: Almacena hasta 10K archivos (aumentar si > 5K .php files)
- revalidate_freq=60: Recompila si el archivo cambió en los últimos 60 segundos (útil en desarrollo)
💡 Verificar OPcache: Crea un archivo phpinfo.php con <?php phpinfo(); ?>, accede vía web, y busca "Zend OPcache". Si ves una sección, está activa.
Preguntas frecuentes
¿Cuál es la mejor versión PHP para hosting compartido? +
PHP 8.2 es el mejor balance en 2026. Seguridad, rendimiento y compatibilidad casi universal. PHP 8.3+ son más nuevas pero algunos plugins pueden no ser compatibles aún. PHP 7.4 está deprecated — úsalo solo si es absolutamente necesario.
¿Cómo cambio la versión PHP en cPanel? +
cPanel → MultiPHP Manager → selecciona dominio → dropdown de versión → elige 8.2 (o la que necesites) → Apply. Cambios aplican en minutos. Puedes revertir si algo falla.
¿Qué ocurre si supero memory_limit? +
PHP mata el proceso y muestra "Fatal error: Allowed memory size exhausted". La página no carga. Solución: aumentar memory_limit en php.ini a 256M o 512M, O optimizar el código para no cargar tanta data en RAM.
¿Puedo cambiar PHP.ini sin acceso a cPanel? +
Sí. Crea un archivo user.ini en la raíz de tu dominio (o un subdirectorio) con las directivas que quieras cambiar. user.ini tiene prioridad sobre php.ini. Aplica en 1-2 minutos. Alternativa: .htaccess con php_value directiva valor.
¿Cuál es la diferencia entre PHP-FPM y CGI? +
PHP-FPM es mucho más rápido (mantiene procesos en memoria, reutiliza), CGI genera un nuevo proceso por cada request (lento). PHP-FPM es el estándar en 2026. Si tu hosting usa CGI, pide cambio a PHP-FPM (es mejora gratuita).
¿OPcache consume memoria? +
Sí, pero vale totalmente la pena. Un cache de 256MB de OPcache hace tu sitio 2-3x más rápido, recuperando la velocidad perdida (y más). La RAM invertida en cache genera muchísimo ROI en velocidad.
¿upload_max_filesize vs post_max_size: cuál cambia? +
Cambia ambas. upload_max_filesize es el archivo máximo. post_max_size es el total de datos POST. Regla: siempre post_max_size ≥ upload_max_filesize. Ej: upload=100M, post=128M.
Artículos relacionados
.htaccess: trucos y optimización
Controlar redirecciones, seguridad y rendimiento sin PHP
Optimizar imágenes en web
WebP, AVIF, compresión sin pérdida para velocidad
WordPress y versión PHP recomendada
Compatibilidad de plugins y temas con cada versión
Configurar VPS Ubuntu desde cero
Instalar PHP, MySQL, Nginx en VPS propio
¿Aún sin claro qué hosting necesitas?
Usa nuestra herramienta inteligente. Responde preguntas sobre tu proyecto (WordPress, ecommerce, desarrollo) y recibe una recomendación personalizada con versión PHP, plan y proveedor exacto.
Ir a la herramienta →