Cómo Cambiar la Versión de PHP en Tu Entorno de Hosting (Guía Completa)
Gestionar tu versión de PHP es una de las tareas administrativas más críticas para cualquier propietario de sitio web o desarrollador. Ya sea que estés actualizando para aprovechar las últimas mejoras de rendimiento, degradando para compatibilidad de aplicaciones heredadas, o parcheando vulnerabilidades de seguridad, saber exactamente cómo cambiar versiones de PHP en diferentes entornos de hosting es una habilidad esencial. Esta guía completa te guía a través de cada método disponible — desde la interfaz gráfica de cPanel hasta herramientas de línea de comandos en VPS Hosting y servidores dedicados.
Tabla de Contenidos
- Por qué la Gestión de Versiones de PHP es Importante
- Entendiendo Versiones de PHP y Compatibilidad
- Método 1: Cambiar Versión de PHP vía cPanel (MultiPHP Manager)
- Método 2: Cambiar Versión de PHP vía .htaccess (Apache)
- Método 3: Cambiar Versión de PHP vía Línea de Comandos (VPS/Servidores Dedicados)
- Método 4: Cambiar Versión de PHP vía php.ini
- Cómo Verificar tu Versión Activa de PHP
- Errores Comunes Después de Cambiar Versiones de PHP
- Mejores Prácticas para la Gestión de Versiones de PHP
- Conclusión
1. Por qué la Gestión de Versiones de PHP es Importante {#why-it-matters}
PHP alimenta más del 77% de todos los sitios web con un lenguaje del lado del servidor conocido, incluyendo plataformas importantes como WordPress, Joomla, Drupal y Magento. Cada lanzamiento principal de PHP introduce cambios significativos:
- Ganancias de rendimiento: PHP 8.x es dramáticamente más rápido que PHP 5.x o 7.x, gracias al compilador JIT (Just-In-Time).
- Parches de seguridad: Las versiones antiguas de PHP eventualmente alcanzan Fin de Vida (EOL) y ya no reciben actualizaciones de seguridad, dejando tu sitio expuesto.
- Compatibilidad de aplicaciones: Algunos plugins antiguos, temas o aplicaciones personalizadas fueron escritos para versiones específicas de PHP y pueden romperse en versiones más nuevas.
- Cumplimiento de hosting: Muchos proveedores de hosting aplican requisitos mínimos de versión de PHP para mantener estándares de seguridad del servidor.
No gestionar tu versión de PHP de manera proactiva puede resultar en funcionalidad rota, brechas de seguridad o tiempo de inactividad del sitio web. Entender cómo controlar esta configuración — independientemente de tu tipo de hosting — es innegociable para cualquier administrador web serio.
2. Entendiendo Versiones de PHP y Compatibilidad {#understanding-versions}
Antes de hacer cualquier cambio, es importante entender el ciclo de vida del lanzamiento de PHP y cómo se estructuran las versiones.
Numeración de Versiones de PHP
PHP sigue un esquema de versionado MAYOR.MENOR.PARCHE:
| Componente | Ejemplo | Significado |
|---|---|---|
| Mayor | 8 | Cambios arquitectónicos significativos, posibles cambios disruptivos |
| Menor | 8.2 | Nuevas características, mejoras compatibles hacia atrás |
| Parche | 8.2.10 | Solo correcciones de errores y parches de seguridad |
Ciclo de Vida de Soporte de PHP
Cada versión menor de PHP recibe:
- Soporte activo durante aproximadamente 2 años (correcciones de errores + parches de seguridad)
- Soporte solo de seguridad durante 1 año adicional
- Fin de Vida (EOL) después del cual no se lanzan parches
Versiones de PHP Actualmente Soportadas (a partir de 2024–2025)
| Versión de PHP | Estado | Notas |
|---|---|---|
| PHP 8.3 | Soporte Activo | Lanzamiento estable más reciente |
| PHP 8.2 | Soporte Activo | Recomendado para la mayoría de aplicaciones |
| PHP 8.1 | Solo Seguridad | Aún ampliamente utilizado |
| PHP 8.0 | EOL | Evitar — sin parches de seguridad |
| PHP 7.4 | EOL | Solo soporte heredado |
| PHP 7.3 e inferior | EOL | Fuertemente desaconsejado |
> Regla de oro: Siempre ejecuta la versión de PHP más alta que tu aplicación oficialmente soporta. Si tu CMS o framework soporta PHP 8.2, no hay razón para ejecutar PHP 7.4.
3. Método 1: Cambiar Versión de PHP vía cPanel (MultiPHP Manager) {#cpanel-method}
cPanel es el panel de control de hosting más ampliamente utilizado, y proporciona dos herramientas integradas para la gestión de versiones de PHP: MultiPHP Manager (en todo el servidor o por dominio) e MultiPHP INI Editor (para ajustar configuraciones de PHP). Si estás usando un VPS con cPanel, ambas herramientas están disponibles para ti.
Paso 1: Inicia Sesión en cPanel
- Abre tu navegador y navega a tu URL de inicio de sesión de cPanel:
https://yourdomain.com:2083 (seguro, recomendado)
https://yourdomain.com/cpanelhttps://your-server-ip:2083- Ingresa tu nombre de usuario de cPanel y contraseña.
- Haz clic en Iniciar Sesión.
Paso 2: Abre MultiPHP Manager
- En el panel de control de cPanel, desplázate a la sección Software.
- Haz clic en MultiPHP Manager.
> Alternativa: Algunas configuraciones de cPanel etiquetan esto como Seleccionar Versión de PHP, Configuración de PHP, o Selector de PHP (este último es común en hosting compartido basado en CloudLinux). La interfaz puede diferir ligeramente, pero el proceso es el mismo.
Paso 3: Selecciona tu Dominio y Versión de PHP
En la interfaz de MultiPHP Manager:
- Verás una lista de todos los dominios y subdominios alojados en tu cuenta.
- Marca la casilla de verificación junto al dominio que deseas modificar.
- Desde el menú desplegable Versión de PHP en la parte superior de la página, selecciona tu versión de PHP deseada (p. ej.,
PHP 8.2). - Haz clic en Aplicar.
> Importante: Si estás en una cuenta de hosting compartido, las versiones de PHP disponibles están determinadas por tu proveedor de hosting. Si necesitas una versión que no esté listada, contacta al equipo de soporte de tu host o considera actualizar a un plan de VPS Hosting donde tienes control total sobre las versiones de PHP instaladas.
Paso 4: (Opcional) Personaliza Configuraciones de PHP vía MultiPHP INI Editor
Después de cambiar versiones, es posible que necesites ajustar valores de configuración de PHP:
- Regresa a la sección Software en cPanel.
- Haz clic en MultiPHP INI Editor.
- Selecciona tu dominio desde el menú desplegable.
- Modifica valores tales como:
memory_limit (p. ej., 256M)
upload_max_filesize (p. ej., 64M)
max_execution_time (p. ej., 300)
post_max_size (p. ej., 64M)
Haz clic en Aplicar para guardar los cambios.
Paso 5: Verifica el Cambio
Crea un archivo de prueba para confirmar la versión activa de PHP (consulta la Sección 7 para obtener instrucciones completas).
4. Método 2: Cambiar Versión de PHP vía .htaccess (Apache) {#htaccess-method}
Si tu entorno de hosting ejecuta Apache pero no proporciona un selector gráfico de PHP, puedes controlar la versión de PHP directamente a través de tu archivo .htaccess. Este método es particularmente útil en planes de Hosting Web Compartido donde el acceso a nivel de servidor es restringido.
Cómo Funciona
Apache usa manejadores para determinar cómo se procesan los archivos .php. Al especificar un manejador personalizado en .htaccess, le indicas a Apache que use una versión específica de PHP para tu sitio.
Paso 1: Accede a tu Archivo .htaccess
Puedes editar .htaccess vía:
Administrador de Archivos de cPanel: Navega a public_html, encuentra .htaccess, haz clic derecho y selecciona Editar.
Cliente FTP/SFTP: Conéctate a tu servidor y navega a tu raíz web (usualmente public_html o www).
Línea de comandos SSH: nano /home/username/public_html/.htaccess> Nota: .htaccess es un archivo oculto. En tu cliente FTP, habilita “Mostrar Archivos Ocultos”. En el Administrador de Archivos de cPanel, marca “Mostrar Archivos Ocultos (dotfiles)” en la configuración de la esquina superior derecha.
Paso 2: Añade la Directiva del Manejador de PHP
Añade una de las siguientes líneas a tu archivo .htaccess, dependiendo de la convención de nombres del manejador de PHP de tu servidor:
Para PHP 8.2:
AddHandler application/x-httpd-php82 .phpPara PHP 8.1:
AddHandler application/x-httpd-php81 .phpPara PHP 7.4 (heredado):
AddHandler application/x-httpd-php74 .phpSintaxis alternativa (usada en algunos hosts):
# Using suPHP or FastCGI
Action php-cgi /cgi-bin/php82
AddHandler php-cgi .php> Importante: El nombre exacto del manejador (x-httpd-php82, x-httpd-php81, etc.) depende de cómo tu proveedor de hosting haya configurado PHP en sus servidores. Si lo anterior no funciona, consulta la documentación de tu host o contacta al soporte para obtener los nombres de manejadores correctos.
Paso 3: Guarda y Prueba
Guarda el archivo .htaccess y prueba tu sitio. Si ves un Error 500 del Servidor Interno, el nombre del manejador probablemente sea incorrecto — elimina la línea e intenta una sintaxis alternativa.
5. Método 3: Cambiar Versión de PHP vía Línea de Comandos (VPS/Servidores Dedicados) {#cli-method}
Si administras tus propios Servidores Dedicados o un VPS con acceso root, tienes control completo sobre la instalación de PHP y el cambio de versiones. Este es el método más poderoso y flexible.
Requisitos Previos
- Acceso root o sudo a tu servidor
- Cliente SSH (Terminal en macOS/Linux, PuTTY o Windows Terminal en Windows)
- Familiaridad básica con operaciones de línea de comandos de Linux
Ubuntu / Debian — Usando update-alternatives
Los sistemas basados en Ubuntu y Debian usan el sistema update-alternatives para gestionar múltiples versiones de PHP simultáneamente.
#### Paso 1: Añade el Repositorio de PHP de Ondřej Surý
Este PPA proporciona múltiples versiones de PHP para Ubuntu/Debian:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update#### Paso 2: Instala la Versión de PHP Deseada
# Install PHP 8.2 and common extensions
sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl
php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip php8.2-bcmath
# Install PHP 8.1 if needed
sudo apt install -y php8.1 php8.1-cli php8.1-fpm php8.1-mysql#### Paso 3: Cambia la Versión de PHP Predeterminada (CLI)
# View all registered PHP alternatives
sudo update-alternatives --list php
# Switch to PHP 8.2
sudo update-alternatives --set php /usr/bin/php8.2
# Or use the interactive selector
sudo update-alternatives --config phpEl selector interactivo mostrará algo como:
There are 3 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.1 81 manual mode
3 /usr/bin/php8.2 82 manual mode
Press <enter> to keep the current choice[*], or type selection number:Ingresa el número correspondiente a tu versión deseada y presiona Intro.
#### Paso 4: Cambia la Versión de PHP para Apache (mod_php)
# Disable current PHP module (e.g., PHP 8.1)
sudo a2dismod php8.1
# Enable new PHP module (e.g., PHP 8.2)
sudo a2enmod php8.2
# Restart Apache
sudo systemctl restart apache2#### Paso 5: Cambia la Versión de PHP para Nginx (PHP-FPM)
Para Nginx, PHP se maneja vía PHP-FPM. Actualiza tu bloque de servidor de Nginx para apuntar al socket FPM correcto:
# In your Nginx server block configuration
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}Luego reinicia tanto PHP-FPM como Nginx:
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginxCentOS / RHEL / AlmaLinux / Rocky Linux — Usando SCL o Repositorio Remi
#### Opción A: Usando Software Collections (SCL) — CentOS 7
# Install the SCL repository
sudo yum install -y centos-release-scl
# Install PHP 7.4 via SCL
sudo yum install -y rh-php74 rh-php74-php-fpm rh-php74-php-mysqlnd
# Enable PHP 7.4 for the current session
sudo scl enable rh-php74 bash
# Verify
php --version> Nota: Los cambios de SCL son específicos de la sesión. Para hacerlos permanentes para un usuario, añade source /opt/rh/rh-php74/enable a ~/.bashrc.
#### Opción B: Usando Repositorio Remi — CentOS 7/8, AlmaLinux, Rocky Linux
# Install EPEL and Remi repositories
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm # For RHEL 8/AlmaLinux 8
# List available PHP streams
sudo dnf module list php
# Reset current PHP module
sudo dnf module reset php
# Enable PHP 8.2 stream
sudo dnf module enable php:remi-8.2
# Install PHP 8.2
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-zip
# Verify
php --versionCambiar PHP para Sitios Individuales (Versión de PHP por Sitio)
En servidores que ejecutan múltiples sitios web, a menudo necesitas diferentes versiones de PHP por sitio. El enfoque más limpio es ejecutar múltiples pools de PHP-FPM:
# Start PHP-FPM for multiple versions
sudo systemctl start php7.4-fpm
sudo systemctl start php8.1-fpm
sudo systemctl start php8.2-fpmLuego configura cada host virtual de Nginx para usar un socket FPM diferente:
# Site A — PHP 8.2
server {
server_name site-a.com;
root /var/www/site-a;
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
}
# Site B — PHP 7.4 (legacy application)
server {
server_name site-b.com;
root /var/www/site-b;
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}6. Método 4: Cambiar Versión de PHP vía php.ini {#phpini-method}
En algunos entornos de hosting, particularmente aquellos que usan manejadores de PHP CGI o FastCGI, puedes influir en el comportamiento de PHP — y a veces incluso en la versión — a través de un archivo php.ini personalizado colocado en el directorio raíz de tu sitio web.
Creando un php.ini Personalizado
- Crea un archivo llamado
php.inien el directorio raíz de tu sitio web (public_html). - Añade tus directivas de configuración:
; Custom PHP configuration
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 3000
date.timezone = "UTC"> Nota: Este método controla *configuraciones* de PHP, no necesariamente la *versión* de PHP en sí. La selección de versión vía php.ini solo es posible en configuraciones de hosting específicas. Para control total de versiones, usa cPanel, .htaccess, o métodos de línea de comandos descritos arriba.
7. Cómo Verificar tu Versión Activa de PHP {#verify}
Después de hacer cualquier cambio, siempre verifica que la versión correcta de PHP esté activa. Hay varias formas de hacerlo:
Método A: Crea una Página de Prueba phpinfo()
- Crea un nuevo archivo llamado
phpinfo.phpen tu directorio raíz web (public_html). - Añade el siguiente contenido:
<?php
phpinfo();
?>- Navega a
https://yourdomain.com/phpinfo.phpen tu navegador. - La página mostrará información completa de configuración de PHP. La Versión de PHP se muestra en la parte superior.
> Advertencia de Seguridad: Elimina este archivo inmediatamente después de las pruebas. La salida de phpinfo() revela detalles sensibles de configuración del servidor que podrían ayudar a atacantes.
Método B: Verifica vía Línea de Comandos (SSH)
php --version
# or
php -vSalida esperada:
PHP 8.2.10 (cli) (built: Sep 5 2023 08:12:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
with Zend OPcache v8.2.10, Copyright (c), by Zend TechnologiesMétodo C: Verifica vía un Script PHP Simple
Para una verificación menos detallada, usa este script mínimo en lugar del phpinfo() completo:
<?php
echo 'PHP Version: ' . PHP_VERSION;
echo '<br>PHP Major Version: ' . PHP_MAJOR_VERSION;
echo '<br>PHP Minor Version: ' . PHP_MINOR_VERSION;
?>Método D: Verifica vía Administrador de WordPress (para Sitios WordPress)
En tu panel de administración de WordPress:
- Ve a Herramientas → Salud del Sitio.
- Haz clic en la pestaña Información.
- Expande la sección Servidor.
- Busca Versión de PHP.
8. Errores Comunes Después de Cambiar Versiones de PHP {#common-errors}
Cambiar versiones de PHP a veces puede causar problemas. Aquí están los problemas más comunes y cómo resolverlos:
Error 1: Pantalla Blanca de Muerte (WSOD) o Página en Blanco
Causa: Un plugin, tema o código personalizado usa sintaxis o funciones que son incompatibles con la nueva versión de PHP.
Solución:
- Habilita el modo de depuración de WordPress añadiendo a
wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);- Verifica
/wp-content/debug.logpara mensajes de error específicos. - Desactiva todos los plugins y cambia a un tema predeterminado para aislar el problema.
Error 2: Error 500 del Servidor Interno
Causa: A menudo causado por un manejador de PHP incorrecto en .htaccess, o una extensión de PHP que no está instalada para la nueva versión.
Solución:
- Elimina o corrige la directiva
AddHandleren.htaccess. - Verifica el registro de errores de tu servidor:
tail -f /var/log/apache2/error.logotail -f /var/log/nginx/error.log. - Asegúrate de que las extensiones de PHP requeridas estén instaladas para la nueva versión.
Error 3: “Llamada a función indefinida” o “Clase no encontrada”
Causa: Una extensión de PHP requerida por tu aplicación (p. ej., php-gd, php-mbstring, php-xml) no está instalada para la nueva versión de PHP.
Solución:
# Ubuntu/Debian — install missing extensions for PHP 8.2
sudo apt install php8.2-gd php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip
# Restart web server
sudo systemctl restart apache2 # or nginxError 4: Advertencias de Funciones Deprecadas
Causa: Tu código usa funciones que fueron deprecadas en versiones antiguas de PHP y eliminadas en versiones más nuevas (p. ej., funciones mysql_* eliminadas en PHP 7.0).
Solución:
- Actualiza tu código o plugins para usar equivalentes modernos (p. ej.,
mysqli_*o PDO). - Si los cambios de código inmediatos no son posibles, considera mantener una versión de PHP compatible temporalmente mientras planificas la actualización.
Error 5: La Versión de PHP No Cambia a Pesar de Seguir los Pasos
Causa: Múltiples configuraciones de PHP pueden estar en efecto (p. ej., CLI vs. servidor web), o el almacenamiento en caché está sirviendo respuestas antiguas.
Solución:
- Limpia tu caché del navegador y cualquier caché del lado del servidor (OPcache, Redis, Varnish).
- Reinicia tu servidor web:
sudo systemctl restart apache2osudo systemctl restart nginx. - Confirma que estés editando el archivo
.htaccesso archivo de configuración correcto para el dominio correcto.
9. Mejores Prácticas para la Gestión de Versiones de PHP {#best-practices}
Sigue estas directrices para mantener un entorno de PHP saludable, seguro y de alto rendimiento:
1. Siempre Prueba en un Entorno de Staging Primero
Nunca cambies versiones de PHP directamente en un sitio de producción en vivo. Configura un entorno de staging — ya sea un subdominio o un servidor separado — y prueba tu aplicación a fondo antes de aplicar cambios a producción.
2. Mantén PHP Actualizado
Suscríbete a los anuncios de seguridad oficiales de PHP y planifica actualizaciones antes de que tu versión actual alcance Fin de Vida. Ejecutar versiones de PHP EOL es una de las causas más comunes de compromisos de sitios web.
3. Audita tus Plugins y Dependencias Antes de Actualizar
Antes de actualizar PHP, verifica la compatibilidad de:
- Todos los plugins y temas de CMS instalados
- Dependencias de Composer (
composer.json) - Código de aplicación personalizado
Usa herramientas como PHPCompatibility (un conjunto de reglas de PHP_CodeSniffer) para escanear tu base de código en busca de problemas de compatibilidad.
4. Mantén las Extensiones de PHP Sincronizadas
Cuando cambies versiones de PHP, siemp
