我有一个VPS与Plesk 9在CentOS 5上运行。
我的网站在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用户写就可以(这取决于你的操作系统,可能是www-data或apache ;在你的httpd.conf查找User指令)。
这些命令将如下所示:
chown apache /var/lib/php/session chmod 700 /var/lib/php/session
这使得该目录可以被apache用户写入,并且通常对其他人不可访问。
我切换到使用fcgi运行php解决权限问题后,发生在我身上。 在这个改变之前,php脚本以apache:apache的身份运行,导致权限错误(除非你使用chmod 777所有非常危险的目录)。 切换到运行php的fcgi方法后,php脚本现在以用户组psacln运行,但/ var / lib / php / session目录仍然由root:apache拥有。 我的解决scheme是chown root:psacln /var/lib/php/session ; chmod 770 /var/lib/php/session chown root:psacln /var/lib/php/session ; chmod 770 /var/lib/php/session