PHP会话权限问题

时间:2010-01-13 17:53:28

标签: php session permissions

我正在尝试初始化会话,但是我收到了这个错误:

  

警告:session_start()[function.session-start]:open(/ tmp / sess_7af3ee9ec1350680bedcf63833d160bd,O_RDWR)失败:权限被拒绝(13)

session.path设置为/ tmp,含有777个烫发。

我尝试将session.path编辑为“0; 777; / tmp”但会话文件是使用错误的权限创建的(仅写入)。

我在apache2和ubuntu 9.10上使用PHP 5.2。 有什么想法吗?

4 个答案:

答案 0 :(得分:4)

请确认/ tmp的权限确实是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');

编辑:接下来尝试,umask

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

答案 1 :(得分:1)

您似乎没有权限写入tmp目录,您需要授予其保存文件的权限。

答案 2 :(得分:1)

我也有这个问题。 / etc / sysconfig / httpd中有一行不正确地设置了umask,所以我对它进行了评论:

#umask 644

一切都很好。

答案 3 :(得分:0)

我解决了这个问题,有一个第三方库将错误的umask设置为777,删除它后问题解决了。谢谢你的回答。