session - una - Errores de manejo de la sesión de PHP
recuperar session php (13)
Mira tu mensaje
Entonces, lo primero que se relaciona con el permiso
open(/var/lib/php/session/sess_isu2r2bqudeosqvpoo8a67oj02, O_RDWR) failed: Permission denied (13) in Unknown on line 0
tienes que verificar el modo de cambio de permiso de archivo esto /var/lib/php/session/
En segundo lugar, se relaciona con session.save_path
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
en php.ini
[Session]
; Handler used to store/retrieve data.
session.save_handler = files
; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP''s session functions.
; As of PHP 4.0.1, you can define the path as:
; session.save_path = "N;/path"
; where N is an integer. Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories. This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
; NOTE 1: PHP will not create this directory structure automatically.
; You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
; use subdirectories for session storage
session.save_path = /tmp/ //=>HERE YOU HAVE TO MAKE SURE
; Whether to use cookies.
session.use_cookies = 1
Tengo esto en la parte superior de mi archivo send.php
:
ob_start();
@session_start();
//some display stuff
$_SESSION[''id''] = $id; //$id has a value
header(''location: test.php'');
Y lo siguiente en la parte superior de mi archivo test.php:
ob_start();
@session_start();
error_reporting(E_ALL);
ini_set(''display_errors'', ''1'');
print_r($_SESSION);
Cuando los datos se envían a test.php
, se muestra lo siguiente:
Array ( )
Advertencia: Desconocido: abierto (/ var / lib / php / session / sess_isu2r2bqudeosqvpoo8a67oj02, O_RDWR) fallido: Permiso denegado (13) en Desconocido en la línea 0
Advertencia: Desconocido: no se pudieron escribir los datos de la sesión (archivos). Verifique que la configuración actual de session.save_path sea correcta (/ var / lib / php / session) en Desconocido en la línea 0
Lo intenté solo con session_start (); pero los resultados son los mismos
asegúrese de que session.save_path
esté configurado correctamente en php.ini
. php necesita acceso de lectura / escritura al directorio en el que está configurada esta variable.
más información: http://www.php.net/manual/en/session.configuration.php#ini.session.save-path
tienes que cambiar la configuración de session.save_path
al directorio accesible, /tmp/
por ejemplo
Cómo cambiar: http://php.net/session_save_path
Al estar en el host compartido, se recomienda establecer la ruta de guardar de la sesión dentro de su directorio de inicio, pero debajo de la raíz del documento
También tenga en cuenta que
- usar ob_start es innecesario aquí,
- y estoy seguro de que pusiste @operador por accidente y ya lo eliminarás para siempre, ¿no?
Este fue un error conocido en la (s) versión (es) de PHP. Según el entorno de su servidor, puede intentar configurar la carpeta de sesiones en 777:
/var/lib/php/session
(su ubicación puede variar)
Terminé usando esta solución:
session_save_path(''/path/not/accessable_to_world/sessions'');
ini_set(''session.gc_probability'', 1);
Deberá crear esta carpeta y hacerla escribible. No me he equivocado mucho con los permisos, pero el 777 me funcionó (obviamente).
Asegúrese de que el lugar donde está almacenando sus sesiones no sea accesible para el mundo.
Esta solución puede no funcionar para todos, pero espero que ayude a algunas personas.
Vaya a su archivo PHP.ini
o encuentre PHP.ini EZConfig
en su Cpanel
y establezca PHP.ini EZConfig
en la ruta completa que conduce al archivo tmp
, es decir: /home/cpanelusername/tmp
Al usar la función de encabezado, php no activa un cierre en la sesión actual. Debe usar session_write_close
para cerrar la sesión y eliminar el bloqueo de archivo del archivo de sesión.
ob_start();
@session_start();
//some display stuff
$_SESSION[''id''] = $id; //$id has a value
session_write_close();
header(''location: test.php'');
revise el espacio de su cpanel. elimine el archivo no utilizado o el archivo error.log y luego intente iniciar sesión en su aplicación (este trabajo para mí);
Recibí estos dos mensajes de error, junto con otros dos, y jugueteé un rato antes de descubrir que todo lo que tenía que hacer era reiniciar XAMPP. ¡Espero que esto ayude a salvar a otra persona del mismo tiempo perdido!
Warning: session_start(): open(/var/folders/zw/hdfw48qd25xcch5sz9dd3w600000gn/T/sess_f8bgs41qn3fk6d95s0pfps60n4, O_RDWR) failed: Permission denied (13) in /Applications/XAMPP/xamppfiles/htdocs/foo/bar.php on line 3
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Applications/XAMPP/xamppfiles/htdocs/foo/bar.php:3) in /Applications/XAMPP/xamppfiles/htdocs/foo/bar.php on line 3
Warning: Unknown: open(/var/lib/php/session/sess_isu2r2bqudeosqvpoo8a67oj02, O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
Tuve el mismo error, todo fue correcto, como configurar los permisos de la carpeta.
En mi caso, parece un error en php porque cuando eliminé mi cookie PHPSESSID estaba trabajando nuevamente, así que aparentemente algo se echó a perder y la sesión se eliminó pero la cookie todavía estaba activa, así que php tuvo que definir la causa de manera diferente y verificar primero si el archivo de sesión sigue siendo ellos y dan otro error y no el error de permiso
Estoy usando php-5.4.45 y tengo el mismo problema.
Si usted es un usuario de php-fpm, intente editar php-fpm.conf y cambie listen.owner y listen.group a la derecha. Mi usuario de nginx es apache, así que aquí los cambio a params a apache, entonces funciona bien para mí.
Para el usuario de apache, supongo que deberías editar tus params de cgi rápidos, consulta los dos parámetros que mencioné anteriormente.
Si usa un host virtual configurado y encuentra el mismo error, puede anular la configuración predeterminada de php_value session.save_path
en su <VirtualHost *:80>
#
# Apache specific PHP configuration options
# those can be override in each configured vhost
#
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/5.6/session"
php_value soap.wsdl_cache_dir "/var/lib/php/5.6/wsdlcache"
Cambia la ruta a tu propio ''/tmp''
con chmod 777.
Tuve un problema similar con PHP7 + Symfony 3.1.0 + Vagrant y lo resolví. Espero que esto ayude a alguien:
PHP7 + Symfony 3.1.0 + Vagrant: no se pudieron escribir los datos de la sesión
Al usar la última WHM (v66.0.23), puede ir al Editor INI de MultiPHP y elegir la versión de PHP y establecer session.save_path como predeterminado / var / cpanel / php / sessions / ea-php70 en lugar de tmp simple anterior - esto me ayudó a obtener deshacerse de tales errores.