У меня есть 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
имеет следующие права: -rwxrwx---
Пользователь root
Группа apache
Почему Вы не исправляете полномочия на /var/lib/php/session
? Этот каталог просто должен быть записываемым httpd пользователем (как который, в зависимости от Вашей OS, может быть что-то 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