PHP session permission problem

2019-02-22 10:33发布

I'm trying to initialize a session but i get this error:

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

The session.path is set to /tmp with 777 perms.

I try to edit the session.path to "0;777;/tmp" but the session files are created with the wrong permissions(only write).

I'm using PHP 5.2 on apache2 and ubuntu 9.10. Any ideas?

4条回答
狗以群分
2楼-- · 2019-02-22 11:00

Please verify that the permissions of /tmp really are 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');

edit: next try, umask

<?php
echo ' php-umask: ', sprintf('%o', umask()), "\n";
echo ' exec-umask: ', exec('umask'), "\n";
查看更多
劳资没心,怎么记你
3楼-- · 2019-02-22 11:03

It seems like you do not have permissions to write to the tmp directory, you need to give it permissions to save a file.

查看更多
乱世女痞
4楼-- · 2019-02-22 11:06

I resolve the problem, there was a third party library that sets wrong umask to 777, by deleting it the problem was solved. Thanks for answers.

查看更多
男人必须洒脱
5楼-- · 2019-02-22 11:16

I had this problem, as well. There was a line in /etc/sysconfig/httpd that was setting the umask improperly, so I commented it out:

#umask 644

All is well now.

查看更多
登录 后发表回答