Yii: error de permisos en /var/lib/php/sessions

Al probar una instalación limpia de Yii2 basic en Debian 12, salta el error:

Estoy ejecutando Yii2 en un directorio web de usuario colgando de /home/<usario>/public_html. Parece que el usuario con el que se ejecuta Yii no tiene permisos para crear una sesión en la carpeta del sistema, que por defecto pertenece a root.

Una solución rápida pero poco aconsejable es cambiar los permisos de la carpeta /var/lib/php/sessions para que cualquier usuario pudiera grabar información en ella, pero no es aconsejable cambiar los permisos de los directorios por defecto de la instalación. Una mejor solución es cambiar en PHP el directorio en el que se guardan las sesiones, creando previamente uno cerca del lugar donde está situado el raíz de nuestra aplicación web. Para ello insertamos las siguientes líneas en el archivo index.php antes de iniciar la sesión:

ini_set('session.save_path',realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../../session'));

ini_set('session.gc_probability', 1);

session_start();

Hemos creado previamente un directorio «session» dos niveles más arriba en el árbol de directorios de donde tenemos situado el index.php de la aplicación.

La primera línea de código indica a PHP que guarde los archivos de sesión en esa carpeta. La segunda es específica para un sistema Debian, donde el borrado de sesiones obsoletas se hace de forma periódica eliminándolas de las carpetas por defecto. Como hemos cambiado la carpeta donde se guardan, tenemos que decirle que limpie sesiones para que no se nos acumulen.


Posted

in

, ,

by

Tags:

Comments

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.