无法写入会话数据(文件)

时间:2013-04-15 18:55:29

标签: php session permissions plesk

我刚刚由主办方订购了一个vps服务器。 它是Plesk 11的CentOS。 所以我刚刚在服务器上安装了Zend应用程序,但现在错误日志状态

[Mon Apr 15 20:48:28 2013] [warn] [client 94.210.222.87] mod_fcgid: stderr: PHP Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - /var/www/vhosts/ontwerp.doedels.eu/httpdocs/mvc/libraries/Zend/Session.php(Line:469): Error #2 session_start(): open(/var/www/vhosts/ontwerp.doedels.eu/tmp/sess_t2orkniqjn9rsn9m84d2clsdd1, O_RDWR) failed: Permission denied (13) Array 
[Mon Apr 15 20:48:28 2013] [warn] [client 94.210.222.87] mod_fcgid: stderr: /var/www/vhosts/ontwerp.doedels.eu/httpdocs/mvc/libraries/Zend/Session.php(Line:479): Error #2 session_write_close(): open(/var/www/vhosts/ontwerp.doedels.eu/tmp/sess_t2orkniqjn9rsn9m84d2clsdd1, O_RDWR) failed: Permission denied (13) Array 
[Mon Apr 15 20:48:28 2013] [warn] [client 94.210.222.87] mod_fcgid: stderr: /var/www/vhosts/ontwerp.doedels.eu/httpdocs/mvc/libraries/Zend/Session.php(Line:479): Error #2 session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/www/vhosts/ontwerp.doedels.eu/tmp) Array' in /var/www/vhosts/ontwerp.doedels.eu/httpdocs/mvc/libraries/Zend/Session.php:482 

到目前为止我尝试了什么? 我尝试将session.save_path设置为{DOCUMENTROOT} / tmp和{WEBSPACEROOT} / tmp这似乎没有用。

phpinfo函数说session.save_path = /var/www/vhosts/ontwerp.doedels.eu/tmp这是个好文件夹。路径存在且文件夹具有777 CHMOD权限。

解决方法 当我设置session.save_path = {WEBSPACEROOT} / private / sess时似乎工作 这是我用777 chmod权限制作的文件夹,但它似乎不是一个永久的解决方案。因为我必须按照我的每个订阅创建这个文件夹。

我肯定知道什么?

  • 文件夹未满
  • 文件夹确实存在
  • 该文件夹具有写入权限777
  • 文件夹所有者为0
  • 在fastcgi modus上运行服务器

3 个答案:

答案 0 :(得分:7)

您需要为var目录设置权限。这似乎是问题所在。

答案 1 :(得分:2)

会话文件夹上的默认所有权可能不正确: 例; Amazon Linux上的php-fpm7.0默认为apache用户。如果使用nginx或其他需要切换文件夹所有权。另外,作为注释,您必须在www.conf中更改用户/组设置。

chown -R root:nginx /var/lib/php/7.0/
sed -i 's/apache/nginx/g' /etc/php-fpm-7.0.d/www.conf
service php-fpm-7.0 restart

答案 2 :(得分:0)

在Plex面板中,转到“软件”>“选择PHP版本”>“切换到PHP选项”。将session.save_path值设置为/ tmp

force session path plexhttps://flagon.digital/blog/others/failed-write-session-data#solution__defaultpath

中找到