Zend Session сохраняет в правильном пути, но gc попытаться очистить в другом месте

Мой проект работает под ZF 1.11, и он выдает эту ошибку случайным образом:

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - /home/user/www/MyProject/library/Zend/Session.php(Line:469): Error #8 session_start() [<a href='function.session-start'>function.session-start</a>]: ps_files_cleanup_dir: opendir(/tmp) failed: Permission denied (13) Array' in /home/user/www/MyProject/library/Zend/Session.php:482 Stack trace: 
#0 /home/user/www/MyProject/library/Zend/Session/Namespace.php(143): Zend_Session::start(true) 
#1 /home/user/www/MyProject/library/Dlx/Acl/Permissao.php(8): Zend_Session_Namespace->__construct('user_info') 
#2 /home/user/www/MyProject/application/Bootstrap.php(72): Dlx_Acl_Permissao->__construct(Object(Zend_Db_Adapter_Pdo_Mysql)) 
#3 /home/user/www/MyProject/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initLoaders() 
#4 /home/user/www/MyProject/library/Zend/Application/Bootstrap/BootstrapAbstract.php(622): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('loaders') 
#5 /home/user/ in /home/user/www/MyProject/library/Zend/Session.php on line 482

Как вы можете видеть, он пытается очистить сеанс в каталоге / tmp, но в моем application.ini конфигурация устанавливает для session.save_path значение APPLICATION_PATH "/../data/session" (conf по умолчанию ZF) и сохраняет сеанс в этом пути, но когда gc запускается, он пытается очистить в неправильном каталоге

Это моя конфигурация сеанса application.ini:

http://codepad.org/mJUyipG0

Кстати, разрешения / data и / data / session установлены на 777

Есть идеи?

1 ответ

Проверьте свой php.ini /tmp Кажется, top будет каталогом по умолчанию для сохранений php сессии. Хотя в моей установке строка пути сохранения закомментирована. ;session.save_path = "/tmp"

Вы также можете отлаживать, сбрасывая Zend_Session::getOptions(); (это статический метод), чтобы убедиться, что ваши параметры установлены правильно.

Это может быть причиной исключения:

string save_path - правильное значение зависит от системы и должно быть предоставлено разработчиком с использованием абсолютного пути к каталогу, читаемому и доступному для записи в процессе PHP. Если путь для записи не указан, то Zend_Session при запуске выдает исключение (т. Е. При вызове start()).

Надеюсь, это так просто, просто укажите абсолютный путь и проверьте разрешения.

.. на пути может быть проблема. APPLICATION_PATH "/../data/session"

Другие вопросы по тегам