note 108874 added to function.session-save-path

From: Date: Thu, 31 May 2012 13:51:33 +0000
Subject: note 108874 added to function.session-save-path
Groups: php.notes 
Request: Send a blank email to php-notes+get-188322@lists.php.net to get a copy of this message
Error: Warning: session_write_close() [function.session-write-close]: write failed: No space left on device (28) Warning: session_write_close() [function.session-write-close]: Failed to write session data (files). Solución: Este problema puede estar dado por falta de espacio en la ubicación donde PHP guarda por defecto las session's de usuario (/tmp) Una solución para servidores compartidos (donde no podemos configurar el tamaño de estas ubicación) es cambiar la ubicación hacia una con espacio. 1) Creamos el directorio /public_html/sessions y le damos permisos (777) <-- será la nueva ubicación de nuestras session's (por un tema de seguridad podemos ver de afinar los permisos y ponerle un nombre más criptico). 2) Creamos un archivo .htaccess dentro de /public_html/sessions con el siguiente contenido (para restringir el acceso a este directorio) order deny,allow deny from all allow from 127.0.0.1 3) Cambiamos la configuración de la directiva "session.save_path" agregando la siguiente linea en nuestro controlador frontal (antes de ejecutar el session_start()), si no tenemos controlador frontal, dentro de algún archivo que incluyamos en cada script. session_save_path(dirname($_SERVER['DOCUMENT_ROOT']) . '/public_html/sessions'); 4) Debemos chequear que la directiva "session.gc_probability" este en 1 (activa), si no esta en 1 podemos configurar agregando la siguiente linea después de setear el session_save_path: ini_set('session.gc_probability', 1); Comprobar que realmente se haga el cambio: Podemos crear un archivo llamado checkconfig.php con el siguiente contenido: <?php session_save_path(dirname($_SERVER['DOCUMENT_ROOT']) . '/public_html/session'); ini_set('session.gc_probability', 1); session_start(); $_SESSION['text'] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu nunc quis tellus adipiscing facilisis ut eget turpis."; phpinfo(); ?> Ejecutarlo y chequear con un Ctrl + F (buscando) que las directivas session.save_path y session.gc_probability tengan los valores esperados, y que dentro del directorio /public_html/sessions se haya creado el archivo de session. Saludos, Fernando. ---- Server IP: 69.147.83.197 Probable Submitter: 190.245.47.11 ---- Manual Page -- http://www.php.net/manual/en/function.session-save-path.php Edit -- https://master.php.net/note/edit/108874 Del: integrated -- https://master.php.net/note/delete/108874/integrated Del: useless -- https://master.php.net/note/delete/108874/useless Del: bad code -- https://master.php.net/note/delete/108874/bad+code Del: spam -- https://master.php.net/note/delete/108874/spam Del: non-english -- https://master.php.net/note/delete/108874/non-english Del: in docs -- https://master.php.net/note/delete/108874/in+docs Del: other reasons-- https://master.php.net/note/delete/108874 Reject -- https://master.php.net/note/reject/108874 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#188322) next »