2010-01-13 22 views
5

estoy tratando de inicializar una sesión, pero me sale este error:PHP problema de permisos sesión

Warning: session_start() [function.session-start]: open(/tmp/sess_7af3ee9ec1350680bedcf63833d160bd, O_RDWR) failed: Permission denied (13)

El session.path se establece en/tmp con 777 permanentes.

Intento editar el session.path a "0; 777;/tmp", pero los archivos de sesión se crean con los permisos incorrectos (solo escritura).

Estoy usando PHP 5.2 en apache2 y ubuntu 9.10. Alguna idea?

Respuesta

4

Por favor, compruebe que los permisos de/tmp realmente son xx777

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 
$s = stat('/tmp'); 
printf('%o', $s[2]); 
file_put_contents('/tmp/phptest1234.txt', 'test'); 
unlink('/tmp/phptest1234.txt'); 

edición: siguiente intento, umask

<?php 
echo ' php-umask: ', sprintf('%o', umask()), "\n"; 
echo ' exec-umask: ', exec('umask'), "\n"; 
+0

Su secuencia de comandos devuelve 44777. Los archivos de sesión están escritos en/tmp pero con permisos incorrectos: php crea archivos de sesión con 100366 permisos. Puedo escribir pero no leer – Daniel

+0

Eso suena como una umask de 0411, ver edición. – VolkerK

+0

Devuelve: php-umask: 22 exec-umask: 0022 – Daniel

1

Parece que no tiene permisos para escribir en el directorio tmp, debe otorgarle permisos para guardar un archivo.

+0

+1: Me recuerda a la semana pasada cuando una máquina que encontré configurada por otra persona tenía/tmp como 0770 en lugar de 1777 o 1666. Ahora que lo pienso, también era Ubuntu Server. – Powerlord

+1

Parece que ya ha indicado que las perms de/tmp están establecidas en 777. –

0

puedo solucionar el problema, había una biblioteca de terceros que establece máscara de usuario incorrecto hasta 777, al eliminarlo el problema se solucionó. Gracias por las respuestas.

+2

Tengo el mismo problema. Cómo puedo resolverlo ? . Gracias – bader

1

Tuve este problema, también. Había una línea en/etc/sysconfig/httpd que estaba poniendo la máscara de usuario de forma inadecuada, por lo que descomentado:

#umask 644 

Todo está bien ahora.