Sistemas

Cómo actualizar PHP en Ubuntu con CloudPanel, paso a paso

Una guía práctica para revisar paquetes, simular la actualización de PHP y comprobar los sitios en Ubuntu con CloudPanel o paneles equivalentes.

Ilustración de mantenimiento y actualización segura de PHP en un servidor Ubuntu con panel de alojamiento.
Revisa los paquetes, aplica la corrección y comprueba sitios y procesos. · Crédito: Ilustração editorial gerada com inteligência artificial para ernani.dev.

Si usas Ubuntu con CloudPanel, corregir PHP implica actualizar los paquetes del servidor y comprobar los sitios después. Vamos a hacerlo por etapas, sin aprovechar la urgencia para cambiar toda la instalación.

El 21 de octubre de 2026, PHP publicó correcciones críticas en 8.2.35, 8.3.36, 8.4.27 y 8.5.12. Utiliza la versión corregida o una posterior de la misma serie. Alerta oficial. El artículo anterior explica las vulnerabilidades; aquí nos centramos en aplicar la actualización.

1. Comprueba si este procedimiento sirve para tu instalación

Los comandos cubren instalaciones con paquetes PHP versionados gestionados mediante APT, como php8.4-fpm. Este patrón aparece en la documentación de CloudPanel. Otros paneles solo entran en este procedimiento si utilizan el mismo modelo.

No apliques la selección siguiente a Docker, PHP compilado manualmente, paquetes ea-php de cPanel ni paquetes propios de Plesk. Cada uno requiere su procedimiento. La selección tampoco cubre módulos libapache2-mod-php ni extensiones con otros prefijos: revísalos por separado.

Ten una copia recuperable de los sitios, bases de datos y configuración, acceso a la consola del proveedor y una ventana de mantenimiento. Ejecuta los bloques por separado, como root, en la misma sesión Bash; si usas sudo, adapta los comandos administrativos. No pegues todo de una vez.

2. Comprueba qué está instalado y qué se utiliza

cat /etc/os-release
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' 'php*'

dpkg-query permite revisar el estado, nombre y versión de los paquetes. Guarda la salida antes de cambiar nada. Una versión antigua instalada no demuestra que un sitio la utilice, ni justifica eliminarla a ciegas.

En CloudPanel, consulta la versión en PHP Settings de cada sitio. Documentación de configuración. Enumera tareas cron, colas y procesos persistentes, como workers de Laravel/Horizon. El php -v genérico muestra el PHP de la terminal, que puede ser distinto. No cambies update-alternatives para intentar resolver esa diferencia durante este mantenimiento.

3. Actualiza los índices y comprueba el origen

apt-get update

Si aparecen errores de firma, descarga o repositorio, detente y resuélvelos antes de continuar, aunque parte de los índices se haya actualizado.

Ahora selecciona solo los paquetes PHP versionados que ya están instalados, consulta sus candidatos y simula:

mapfile -t php_pkgs < <(
  dpkg-query -W -f='${binary:Package} ${db:Status-Status}\n' |
    awk '$2 == "installed" && $1 ~ /^php[0-9]+[.][0-9]+([-:]|$)/ {print $1}'
)

if ((${#php_pkgs[@]} == 0)); then
  printf '%s\n' 'STOP: php_pkgs is empty.'
else
  printf '%s\n' "${php_pkgs[@]}"
  apt-cache policy "${php_pkgs[@]}"
  apt-get -s --no-remove install --only-upgrade "${php_pkgs[@]}"
fi

Si aparece STOP, no continúes: revisa cómo se instaló PHP. La variable php_pkgs debe seguir disponible en la misma sesión.

En apt-cache policy, comprueba Installed, Candidate y el origen. Manual de apt-cache. En Ubuntu 24.04, los repositorios deben ser compatibles con Noble. No mezcles Noble con otra distribución, como Resolute, ni añadas un PPA solo para que aparezca la versión deseada.

Una actualización disponible no confirma la corrección de seguridad. Compara la versión y revisión completas del paquete con el boletín del proveedor. Un backport puede conservar un número antiguo, pero requiere confirmación explícita de que corrige estas vulnerabilidades. Si el repositorio todavía no ofrece la corrección, contacta con soporte y planifica una alternativa compatible; no des el servidor por protegido.

4. Revisa antes de instalar

La opción -s simula; --no-remove interrumpe propuestas con eliminaciones; --only-upgrade limita los objetivos solicitados a paquetes ya instalados. Revisa también las dependencias que pueda exigir la resolución. Manual de APT.

Comprueba versiones, dependencias, paquetes retenidos, conflictos y posibles cambios de proveedor. Si la simulación falla o algo parece extraño, detente. No fuerces la transacción ni uses full-upgrade o autoremove como atajo.

Una vez aprobada la propuesta, todavía en la misma sesión:

if ((${#php_pkgs[@]} > 0)); then
  apt-get --no-remove install --only-upgrade "${php_pkgs[@]}"
else
  printf '%s\n' 'STOP: php_pkgs is empty.'
fi

El comando conserva la confirmación interactiva, sin -y. Lee de nuevo el resumen. Si aparece una pregunta sobre un archivo de configuración, compara las diferencias con tu copia de seguridad; no sustituyas indiscriminadamente los ajustes del panel. Espera a que termine y confirma que no hubo errores.

5. Comprueba el PHP que realmente atiende los sitios

Repite el inventario y compara las revisiones instaladas con la corrección esperada. A continuación, 8.5 es solo un ejemplo: úsalo únicamente si esa serie está instalada y en uso; adáptalo para cada serie que debas comprobar.

php8.5 -v
php-fpm8.5 -v
systemctl status php8.5-fpm --no-pager
systemctl status nginx --no-pager

Estos comandos comprueban los binarios en disco y el estado de los servicios. No demuestran, por sí solos, que se hayan sustituido todos los workers antiguos. Revisa los procesos y la versión efectiva de la aplicación mediante un diagnóstico restringido, sin dejar una página phpinfo() pública.

Si siguen activos procesos antiguos en el FPM correspondiente, prueba la configuración y reinicia solo ese servicio, teniendo en cuenta la breve interrupción:

php-fpm8.5 -t && systemctl restart php8.5-fpm

El && impide el reinicio si falla la prueba. Las opciones -v y -t figuran en el manual de PHP-FPM. Si la instalación del paquete ya renovó correctamente los procesos, no repitas el reinicio por costumbre. Las colas persistentes requieren sus propias comprobaciones.

Por último, prueba páginas, inicio de sesión, formularios, cron y colas; revisa los logs de PHP, Nginx y la aplicación. Actualizar solo PHP no exige automáticamente reiniciar todo el servidor.

El mantenimiento termina cuando el paquete corregido está en uso y los sitios han sido probados. Si una serie antigua no tiene una corrección confirmada del proveedor, planifica la migración sin confundir un paquete instalado con un servicio activo.

Fuentes consultadas el 21 de octubre de 2026.

EN

Ernani Nascimento

Desarrollador, emprendedor y administrador de empresas. Creo sistemas y comparto lo que aprendo en el camino.

Conoce al autor ↗

Sigue explorando.

DE LA IDEA A LA PRÁCTICA

¿Tienes algo en mente?
Vamos a construirlo.

Conversemos ↗