En entornos de producción, es común actualizar el motor de PHP para beneficiarse de nuevas funcionalidades, mejoras de rendimiento y parches de seguridad. Sin embargo, al migrar de PHP 8.2-FPM a PHP 8.4-FPM, pueden quedar residuos de configuración o servicios huérfanos, como el antiguo servicio php8.2-fpm
, e incluso deshabilitarse utilidades como phpsessionclean
encargadas de limpiar sesiones caducadas.
Este documento describe los pasos para:
- Deshabilitar y eliminar PHP 8.2-FPM.
- Configurar y verificar PHP 8.4-FPM como versión activa.
- Restaurar y habilitar
phpsessionclean
. - Verificar que no existen referencias obsoletas a PHP 8.2.
Verificación de versiones instaladas
Antes de iniciar la limpieza, verificar qué versiones de PHP están presentes en el sistema:
service php
php8.2-fpm php8.4-fpm phpsessionclean
También se recomienda revisar los unit files de systemd:
systemctl list-unit-files | grep php
Eliminación de referencias a PHP 8.2-FPM
Si php8.2-fpm
no está cargado como servicio nativo systemd pero sigue apareciendo en el sistema, suele deberse a que aún existe un script SysV en /etc/init.d/
.
1 Eliminar enlaces SysV
sudo update-rc.d -f php8.2-fpm remove
2 Enmascarar la unidad para evitar activaciones accidentales
sudo systemctl mask php8.2-fpm
3 (Opcional) Purgar el paquete
sudo apt purge -y php8.2-fpm
sudo apt autoremove -y
Revisión de configuración en Nginx o Apache
Es imprescindible que todas las referencias al socket de PHP apunten a la versión 8.4:
grep -R "php8\.2" /etc/nginx/sites-enabled/ /etc/apache2/sites-enabled/ /etc/php/ -n
Si se encuentra:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
debe cambiarse por:
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
Recargar el servicio web:
# Nginx
sudo nginx -t && sudo systemctl reload nginx
# Apache
sudo apachectl configtest && sudo systemctl reload apache2
Restauración de phpsessionclean
El servicio phpsessionclean
se encarga de eliminar sesiones PHP caducadas y suele instalarse junto con php-common
o phpX.Y-common
.
1 Comprobar si existe como systemd timer
systemctl list-unit-files | grep phpsessionclean
Si existe, habilitarlo:
sudo systemctl enable --now phpsessionclean.timer
Forzar una ejecución manual:
sudo systemctl start phpsessionclean.service
2 Reinstalar el paquete si no existe
En sistemas con PHP 8.4 desde Sury o repos oficiales de Ubuntu/Debian:
sudo apt install --reinstall -y php8.4-common
o
sudo apt install --reinstall -y php-common
6. Verificación final
Comprobar servicios activos:
service php
Debería aparecer:
php8.4-fpm phpsessionclean
Comprobar estado de PHP 8.4-FPM:
systemctl status php8.4-fpm
Comprobar el timer de limpieza de sesiones:
systemctl status phpsessionclean.timer
7. Conclusiones
Migrar de PHP 8.2-FPM a 8.4-FPM requiere más que instalar la nueva versión; es esencial limpiar restos de la anterior para evitar conflictos, así como asegurarse de que los servicios auxiliares como phpsessionclean
continúan activos.
Siguiendo este procedimiento:
- Eliminamos residuos de PHP 8.2.
- Configuramos PHP 8.4 como versión activa en el servidor web.
- Restauramos y habilitamos el servicio de limpieza de sesiones.
- Garantizamos un entorno más limpio y estable en producción.
Compartir: