Проблема с разрешением сеанса PHP - PullRequest
5 голосов
/ 13 января 2010

Я пытаюсь инициализировать сеанс, но получаю эту ошибку:

Предупреждение: session_start () [function.session-start]: открыть (/ tmp / sess_7af3ee9ec1350680bedcf63833d160bd, O_RDWR) не удалось: разрешение отклонено (13)

Параметр session.path имеет значение / tmp с 777 разрешениями.

Я пытаюсь изменить файл session.path на "0; 777; / tmp", но файлы сеанса создаются с неправильными разрешениями (только запись).

Я использую PHP 5.2 на apache2 и ubuntu 9.10. Есть идеи?

Ответы [ 4 ]

4 голосов
/ 13 января 2010

Пожалуйста, убедитесь, что разрешения / 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');

edit: следующая попытка, umask

<?php
echo ' php-umask: ', sprintf('%o', umask()), "\n";
echo ' exec-umask: ', exec('umask'), "\n";
1 голос
/ 31 марта 2010

У меня тоже была эта проблема. В / etc / sysconfig / httpd была строка, которая неправильно настраивала umask, поэтому я закомментировал ее:

#umask 644

Теперь все хорошо.

1 голос
/ 13 января 2010

Похоже, у вас нет прав на запись в каталог tmp, вам нужно дать ему разрешение на сохранение файла.

0 голосов
/ 17 января 2010

Я решил проблему, была сторонняя библиотека, которая устанавливает неправильный umask на 777, удалив его, проблема была решена. Спасибо за ответы.

...