无法写入会话数据

无法写入会话数据

我有一个在 CentOS 5 上运行带有 Plesk 9 的 VPS。
我的网站在 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---用户rootapache

答案1

为什么不修复 上的权限/var/lib/php/session?此目录只需对 httpd 用户具有写入权限(具体取决于您的操作系统,可能类似于www-data或;在您的 中apache查找指令)。Userhttpd.conf

命令看起来类似于:

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

这使得该目录可由apache用户写入,且通常其他所有人都无法访问。

答案2

在我切换到使用 fcgi 运行 php 以解决权限问题后,发生了这种情况。在此更改之前,php 脚本以 apache:apache 的身份运行,这会导致权限错误(除非您chmod 777拥有所有目录,这非常危险)。切换到运行 php 的 fcgi 方法后,php 脚本现在以用户组 psacln 的身份运行,但 /var/lib/php/session 目录仍归 root:apache 所有。我的解决方案是chown root:psacln /var/lib/php/session ; chmod 770 /var/lib/php/session

相关内容