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" (конфигурация ZF по умолчанию) и сохраняет сеанс. по этому пути, но когда gc запускается, он пытается очистить не в том каталоге

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

http://codepad.org/mJUyipG0

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

Любые идеи ?


person Hectore    schedule 22.11.2012    source источник


Ответы (1)


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

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

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

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

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

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

person RockyFord    schedule 24.11.2012
comment
Вот вывод для var_dump: codepad.org/lkmOxIFm . Видимо с настройками все в порядке - person Hectore; 24.11.2012