代码之家  ›  专栏  ›  技术社区  ›  Hannes

Zend\u Session/Zend\u Auth随机抛出错误消息ps\u files\u cleanup\u dir:opendir(/var/lib/php5)failed:Permission denied(13)

  •  26
  • Hannes  · 技术社区  · 14 年前

    我目前正在使用Zendèu Auth(除其他外)开发一个新的应用程序,但是,不管出于什么原因,这个错误消息完全随机地出现在任何位置(或者它是这样的)

    Zend_Session::start() session_start() [function.session start]:ps\u files\u cleanup\u dir:opendir(/var/lib/php5)失败:权限被拒绝(13)数组

    • #0/home/hannes/workspace/develop/library/Zend/Session/Namespace.php(143):Zend\u Session::start(true)
    • #1/home/hannes/workspace/develop/library/Zend/Auth/Storage/Session.php(87):Zend\u Session\u Namespace->__构造('Zend\u Auth')
    • #3/home/hannes/workspace/develop/library/Zend/Auth.php(141):Zend\u Auth->获取存储()
    • #4/home/hannes/workspace/develop/xxxxxxx/application/controllers/AdminController.php(10):Zend\u Auth->hasIdentity()
    • #6/home/hannes/workspace/develop/library/Zend/Controller/Dispatcher/Standard.php(262):Zend\u Controller\u Action->__构造(Object(Zend\u Controller\u Request\u Http)、Object(Zend\u Controller\u Response\u Http)、数组)
    • #7/home/hannes/workspace/develop/library/Zend/Controller/Front.php(954):Zend\u Controller\u Dispatcher\u Standard->调度(Object(Zend\u Controller\u Request\u Http),Object(Zend\u Controller\u Response\u Http))
    • #8/home/hannes/workspace/develop/library/Zend/Application/Bootstrap/Bootstrap.php(97):Zend\u Controller\u Front->调度()
    • #9/home/hannes/workspace/develop/library/Zend/Application.php(366):Zend\u Application\u Bootstrap\u Bootstrap->运行()
    • #10/home/hannes/workspace/develop/xxxxxxx/public/index.php(26):Zend\u应用程序->运行()
    6 回复  |  直到 10 年前
        1
  •  13
  •   Toz    14 年前

    解决方案是将php.ini文件中的session.save\u路径设置为可写目录。 例如:session.save\u path=“/tmp”。 在第一个示例中关闭会话垃圾回收不是一个好主意。第二个例子在ubuntu10.04上不起作用

        2
  •  16
  •   Community CDub    4 年前

    显然,这个问题主要(仅?)影响基于debian/ubuntu的系统,并且与自动会话垃圾回收有关。

    变量session.gc\u probability在php.ini中被设置为1,这意味着垃圾收集器运行并清理存储php会话的目录/var/lib/php5的概率为1%。

    http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage

        3
  •  11
  •   Rob    14 年前

    实际上,更改session.save\u路径的目录会关闭垃圾收集。这就是为什么它现在适用于你。如果您想进行垃圾回收,可以将原始目录所有者更改为php用户“www data”

    周恩来www-data/var/lib/php5

        4
  •  5
  •   hakre    13 年前

    我对Symfony框架也有这个问题,问题是php没有会话存储目录的权限。只需将会话保存目录更改为可写的位置。在Zend Framework引导配置ini中:

    resources.session.save_path = APPLICATION_PATH "/../data/session"
    
        5
  •  2
  •   BadHorsie    4 年前

    如果您在Ubuntu上使用PHP 7,请确保PHP会话目录归web服务器所有:

    sudo chown www-data:www-data /var/lib/php/sessions
    
        6
  •  1
  •   Artem Gordinsky    11 年前

    我在OSX10.8.4和MAMP上遇到过这个问题,使用的是第一个Zend框架。设置的目录 session.save_path 在里面 php.ini 默认情况下为 /Applications/MAMP/tmp/php . 我只能通过删除目录中的所有内容来解决这个问题。

    推荐文章