# Migración de PHP-FPM de la versión 8.2 a 8.4 en entornos Linux (Debian/Ubuntu) y restauración del servicio phpsessionclean

- Link: https://binariocero.com/linux/migracion-de-php-fpm-de-la-version-8-2-a-8-4-en-entornos-linux-debian-ubuntu-y-restauracion-del-servicio-phpsessionclean
- Published: 2025-08-15T09:13:32+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

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:

    ```wp-block-code
    service php
    php8.2-fpm       php8.4-fpm       phpsessionclean
    ```

También se recomienda revisar los _unit files_ de systemd:

    ```wp-block-code
    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

    ```wp-block-code
    sudo update-rc.d -f php8.2-fpm remove
    ```

### 2 Enmascarar la unidad para evitar activaciones accidentales

    ```wp-block-code
    sudo systemctl mask php8.2-fpm
    ```

### 3 (Opcional) Purgar el paquete

    ```wp-block-code
    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:

    ```wp-block-code
    grep -R "php8\.2" /etc/nginx/sites-enabled/ /etc/apache2/sites-enabled/ /etc/php/ -n
    ```

Si se encuentra:

    ```wp-block-code
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    ```

debe cambiarse por:

    ```wp-block-code
    fastcgi_pass unix:/run/php/php8.4-fpm.sock;
    ```

Recargar el servicio web:

    ```wp-block-code
    # 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_

    ```wp-block-code
    systemctl list-unit-files | grep phpsessionclean
    ```

Si existe, habilitarlo:

    ```wp-block-code
    sudo systemctl enable --now phpsessionclean.timer
    ```

Forzar una ejecución manual:

    ```wp-block-code
    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:

    ```wp-block-code
    sudo apt install --reinstall -y php8.4-common
    ```

o

    ```wp-block-code
    sudo apt install --reinstall -y php-common
    ```

## 6. Verificación final

Comprobar servicios activos:

    ```wp-block-code
    service php
    ```

Debería aparecer:

    ```wp-block-code
    php8.4-fpm       phpsessionclean
    ```

Comprobar estado de PHP 8.4-FPM:

    ```wp-block-code
    systemctl status php8.4-fpm
    ```

Comprobar el _timer_ de limpieza de sesiones:

    ```wp-block-code
    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.
