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:
Кстати, разрешения / 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"