Categoría: Uncategorized

  • CPanel & CloudLinux : Cómo solucionar el error de PHP «SessionHandler::write(): open() failed: No such file or directory»

    CPanel & CloudLinux : Cómo solucionar el error de PHP «SessionHandler::write(): open() failed: No such file or directory»

    Si eres un administrador de sistemas y has encontrado el siguiente error en tus logs de PHP:

    PHP Warning: SessionHandler::write(): open(/var/cpanel/php/sessions/alt-php74/sess_ecc8f1037c9adc71a4c2a75064937e24, O_RDWR) failed: No such file or directory (2) in /home/user/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php on line 64
    
    PHP Warning: session_write_close(): Failed to write session data using user defined save handler. (session.save_path: /var/cpanel/php/sessions/alt-php74) in /home/user/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php on line 266

    No estás solo. Este error ocurre cuando PHP no puede escribir en la ruta especificada para guardar las sesiones, normalmente es causado por usar el PHP Selector de CloudLinux.

    A continuación, te explicamos cómo solucionar este problema en un entorno cPanel con CloudLinux 8, CPanel y CageFS.

    Paso 1: Verifica la existencia de los directorios

    Primero, asegúrate de que los directorios mencionados en el error existen. En este caso, el directorio es /var/cpanel/php/sessions/alt-php74. Para crearlos, usa los siguientes comandos (te adjunto todas las versiones desde PHP 4.4 hasta PHP 8.3:

    mkdir -p /var/cpanel/php/sessions/alt-php44
    mkdir -p /var/cpanel/php/sessions/alt-php51
    mkdir -p /var/cpanel/php/sessions/alt-php52
    mkdir -p /var/cpanel/php/sessions/alt-php53
    mkdir -p /var/cpanel/php/sessions/alt-php54
    mkdir -p /var/cpanel/php/sessions/alt-php55
    mkdir -p /var/cpanel/php/sessions/alt-php56
    mkdir -p /var/cpanel/php/sessions/alt-php70
    mkdir -p /var/cpanel/php/sessions/alt-php71
    mkdir -p /var/cpanel/php/sessions/alt-php72
    mkdir -p /var/cpanel/php/sessions/alt-php73
    mkdir -p /var/cpanel/php/sessions/alt-php74
    mkdir -p /var/cpanel/php/sessions/alt-php80
    mkdir -p /var/cpanel/php/sessions/alt-php81
    mkdir -p /var/cpanel/php/sessions/alt-php82
    mkdir -p /var/cpanel/php/sessions/alt-php83
    chmod 1777 /var/cpanel/php/sessions/alt-php44
    chmod 1777 /var/cpanel/php/sessions/alt-php51
    chmod 1777 /var/cpanel/php/sessions/alt-php52
    chmod 1777 /var/cpanel/php/sessions/alt-php53
    chmod 1777 /var/cpanel/php/sessions/alt-php54
    chmod 1777 /var/cpanel/php/sessions/alt-php55
    chmod 1777 /var/cpanel/php/sessions/alt-php56
    chmod 1777 /var/cpanel/php/sessions/alt-php70
    chmod 1777 /var/cpanel/php/sessions/alt-php71
    chmod 1777 /var/cpanel/php/sessions/alt-php72
    chmod 1777 /var/cpanel/php/sessions/alt-php73
    chmod 1777 /var/cpanel/php/sessions/alt-php74
    chmod 1777 /var/cpanel/php/sessions/alt-php80
    chmod 1777 /var/cpanel/php/sessions/alt-php81
    chmod 1777 /var/cpanel/php/sessions/alt-php82
    chmod 1777 /var/cpanel/php/sessions/alt-php83

    Paso 2: Edita el archivo cagefs.mp

    Añade las siguientes líneas al final de tu archivo /etc/cagefs/cagefs.mp  para que CageFS incluya estos directorios en su entorno:

    @/var/cpanel/php/sessions/alt-php44,700
    @/var/cpanel/php/sessions/alt-php51,700
    @/var/cpanel/php/sessions/alt-php52,700
    @/var/cpanel/php/sessions/alt-php53,700
    @/var/cpanel/php/sessions/alt-php54,700
    @/var/cpanel/php/sessions/alt-php55,700
    @/var/cpanel/php/sessions/alt-php56,700
    @/var/cpanel/php/sessions/alt-php70,700
    @/var/cpanel/php/sessions/alt-php71,700
    @/var/cpanel/php/sessions/alt-php72,700
    @/var/cpanel/php/sessions/alt-php73,700
    @/var/cpanel/php/sessions/alt-php74,700
    @/var/cpanel/php/sessions/alt-php80,700
    @/var/cpanel/php/sessions/alt-php81,700
    @/var/cpanel/php/sessions/alt-php82,700
    @/var/cpanel/php/sessions/alt-php83,700

     

    Paso 3: Actualiza y remonta CageFS

    Después de editar cagefs.mp, debes reconstruir y actualizar CageFS para que los cambios se apliquen:

    cagefsctl --force-update
    cagefsctl --update
    cagefsctl --remount-all

    Paso 4: Verifica los cambios

    Para asegurarte de que los cambios se han aplicado correctamente, puedes entrar en el entorno CageFS de un usuario específico y verificar que los directorios están presentes:

    cagefsctl --enter <username>
    ls /var/cpanel/php/sessions/

    Reemplaza con el nombre de un usuario para verificar que los nuevos directorios están presentes.

    Conclusión

    Siguiendo estos pasos, deberías haber solucionado el problema de escritura de sesiones en PHP dentro de un entorno cPanel con CloudLinux 8 y CageFS. Asegúrate de que los directorios de sesiones existen y están correctamente configurados en cagefs.mp, y siempre reconstruye y actualiza CageFS después de hacer cambios en la configuración.

    SEO Keywords (ignora esto)

    • SessionHandler::write() failed: No such file or directory
    • PHP session_write_close() error
    • cPanel PHP sessions directory missing
    • CloudLinux 8 CageFS session handling
    • Cómo solucionar error de sesiones PHP en cPanel
    • Directorios de sesiones en CageFS
    • Problemas de sesiones Symfony en PHP
    • PHP Selector CloudLinux
    • Prestashop problemas PHP
    • Prestashop error 500
    • Prestashop PHP Session

    Esperamos que esta guía te haya sido útil para resolver el problema y que otros administradores de sistemas puedan encontrar esta solución fácilmente. ¡Buena suerte!