会话错误 - 拒绝许可(13)

时间:2014-03-06 04:44:01

标签: php session

我在Web应用程序(OpenCart)的日志文件中发现以下错误。有没有人见过这个?或者我可以忽略这个“有点已知的错误”?我尝试关注此特定错误的其他帖子,但没有成功:

  

PHP注意:session_start():ps_files_cleanup_dir:opendir(/ var / lib / php / session)失败:权限被拒绝(13)

在该专用服务器的会话文件夹中,我看到:

-rw------- 1 apache apache  48 Mar  5 19:21 sess_0pl62elpgn43rjakfh6em2v2n5
-rw------- 1 apache apache  48 Mar  5 19:33 sess_2vo41urqek50ef9nl1429879i3
-rw------- 1 apache apache 125 Mar  5 18:59 sess_35goisejg3asq4n4hntcsgofu6
-rw------- 1 apache apache  48 Mar  5 19:16 sess_4cgkdiqfqgfgje356uoem0r7s3
-rw------- 1 apache apache  48 Mar  5 19:33 sess_5ji1i4kppt6ara43v8jdflcgh6
-rw------- 1 apache apache  48 Mar  5 19:34 sess_5sbl2o6ndpphh8jqogrb12v6j1
  .
  .

LAMP,CentOS 5,PHP 5.2

3 个答案:

答案 0 :(得分:5)

要修复 ps_files_cleanup_dir:opendir(/ var / lib / php / sessions)失败:权限被拒绝 问题,我建议以下两件事:

  1. 向该操作系统授予对该特定文件夹(/ var / lib / php / sessions)的写访问权。

    $ sudo chmod 755 / var / lib / php / sessions

  2. 另一个好的解决方案是使用php.ini中的session.save-path为会话文件夹设置一个自定义位置(PHP解释程序可以将会话文件写入该位置)。

注意:使用session.gc_probability = 0禁用PHP的会话垃圾收集器不是一个好的解决方案,因为在会话文件夹中会有很多孤立的会话文件,而且将浪费磁盘空间并降低服务器速度。

答案 1 :(得分:0)

如果您的httpd服务器用户/组是www-data.www-data,请更改:

chown -R www-data.www-data /var/lib/php/sessions

这应该授予httpd服务器打开目录opendir的权限。

答案 2 :(得分:-2)

看起来这是一个解决方案:

Issues with PHP 5.3 and sessions folder

只需在session.gc_probability

中将0设置为PHP.ini即可