Назад | Перейти на главную страницу

Не удалось записать данные сеанса

У меня VPS работает на CentOS 5 с Plesk 9.
Мой сайт работает на FastCGI.

У меня проблемы с чтением / записью. На моих серверах error_log Я получаю следующие ошибки:

(...) Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0  

(...) open(/var/lib/php/session/sess_v8g5rt6p83b9one3mlg9sh9ts0, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Я хочу изменить

session.save_path = "/var/lib/php/session"
к
session.save_path = "/tmp"

Проблема в том, что /tmp есть chmod 777, поэтому я не уверен, что это лучший способ?

Обновить
В session dir имеет следующие права: -rwxrwx--- Пользователь root Группа apache

Почему бы тебе не исправить разрешения на /var/lib/php/session? Этот каталог просто должен быть доступен для записи пользователем httpd (который, в зависимости от вашей ОС, может быть чем-то вроде www-data или apache; ищите User директива в вашем httpd.conf).

Команды будут выглядеть примерно так:

chown apache /var/lib/php/session
chmod 700 /var/lib/php/session

Это делает каталог доступным для записи apache пользователь, и вообще недоступный для всех остальных.

Это случилось со мной после того, как я переключился на запуск php с помощью fcgi для решения проблем с разрешениями. До этого изменения скрипты php выполнялись как apache: apache, что приводило к ошибкам разрешений (если только вы chmod 777проложил все каталоги, что очень опасно). После переключения на метод fcgi для запуска php скрипты php теперь выполняются как группа пользователей psacln, однако каталог / var / lib / php / session по-прежнему принадлежал root: apache. Мое решение было chown root:psacln /var/lib/php/session ; chmod 770 /var/lib/php/session