我正在尝试初始化会话,但是我收到了这个错误:
警告: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。 有什么想法吗?
答案 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,删除它后问题解决了。谢谢你的回答。