15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
01.11.2024

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

  1. Por qué la Gestión de Versiones de PHP es Importante
  2. Entendiendo Versiones de PHP y Compatibilidad
  3. Método 1: Cambiar Versión de PHP vía cPanel (MultiPHP Manager)
  4. Método 2: Cambiar Versión de PHP vía .htaccess (Apache)
  5. Método 3: Cambiar Versión de PHP vía Línea de Comandos (VPS/Servidores Dedicados)
  6. Método 4: Cambiar Versión de PHP vía php.ini
  7. Cómo Verificar tu Versión Activa de PHP
  8. Errores Comunes Después de Cambiar Versiones de PHP
  9. Mejores Prácticas para la Gestión de Versiones de PHP
  10. 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:

ComponenteEjemploSignificado
Mayor8Cambios arquitectónicos significativos, posibles cambios disruptivos
Menor8.2Nuevas características, mejoras compatibles hacia atrás
Parche8.2.10Solo 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 PHPEstadoNotas
PHP 8.3Soporte ActivoLanzamiento estable más reciente
PHP 8.2Soporte ActivoRecomendado para la mayoría de aplicaciones
PHP 8.1Solo SeguridadAún ampliamente utilizado
PHP 8.0EOLEvitar — sin parches de seguridad
PHP 7.4EOLSolo soporte heredado
PHP 7.3 e inferiorEOLFuertemente 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

  1. Abre tu navegador y navega a tu URL de inicio de sesión de cPanel:
    https://yourdomain.com:2083 (seguro, recomendado)
    https://yourdomain.com/cpanel
  • O la IP directa: https://your-server-ip:2083
    1. Ingresa tu nombre de usuario de cPanel y contraseña.
    2. Haz clic en Iniciar Sesión.

    Paso 2: Abre MultiPHP Manager

    1. En el panel de control de cPanel, desplázate a la sección Software.
    2. 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:

    1. Verás una lista de todos los dominios y subdominios alojados en tu cuenta.
    2. Marca la casilla de verificación junto al dominio que deseas modificar.
    3. 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).
    4. 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:

    1. Regresa a la sección Software en cPanel.
    2. Haz clic en MultiPHP INI Editor.
    3. Selecciona tu dominio desde el menú desplegable.
    4. 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 .php

      Para PHP 8.1:

      AddHandler application/x-httpd-php81 .php

      Para PHP 7.4 (heredado):

      AddHandler application/x-httpd-php74 .php

      Sintaxis 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 php

      El 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 nginx

      CentOS / 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 --version

      Cambiar 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-fpm

      Luego 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

      1. Crea un archivo llamado php.ini en el directorio raíz de tu sitio web (public_html).
      2. 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()

      1. Crea un nuevo archivo llamado phpinfo.php en tu directorio raíz web (public_html).
      2. Añade el siguiente contenido:
      <?php
      phpinfo();
      ?>
      1. Navega a https://yourdomain.com/phpinfo.php en tu navegador.
      2. 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 -v

      Salida 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 Technologies

      Mé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:

      1. Ve a Herramientas → Salud del Sitio.
      2. Haz clic en la pestaña Información.
      3. Expande la sección Servidor.
      4. 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.log para 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 AddHandler en .htaccess.
      • Verifica el registro de errores de tu servidor: tail -f /var/log/apache2/error.log o tail -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 nginx

      Error 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 apache2 o sudo systemctl restart nginx.
      • Confirma que estés editando el archivo .htaccess o 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

      15%

      Ahorra 15%<\/span> en todos los servicios de hosting

      Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

      Usa el código:

      Skills
      Comenzar