В настоящее время я работаю над новым Приложением, использующим (помимо прочего) Zend_Auth, но по какой-либо причине это сообщение об ошибке появляется в любом месте полностью случайно (или так оно швы)
Zend_Session::start()
– /home/hannes/workspace/develop/library/Zend/Session.php(Line:480): Ошибка # 8session_start()
[function.session-start]: ps_files_cleanup_dir: opendir (/ var / lib / php5) failed: Permission denied (13) Массив
Решение состоит в том, чтобы установить session.save_path в файле php.ini в записываемый каталог. например: session.save_path = "/ tmp". Переключение сборки мусора сеанса в первом примере не является хорошей идеей. Второй пример не работает на Ubuntu 10.04
По-видимому, эта проблема затрагивает в основном (только?) Системы debian / ubuntu и связана с автоматической сборкой мусора сеанса.
Переменная session.gc_probability была установлена в 1 в php.ini, что означает, что для сборщика мусора будет 1% -ная вероятность запуска и очистка каталога / var / lib / php5, где хранятся сеансы php.
По-видимому, эта папка недоступна для записи через www-данные, что приводит к указанной ошибке и бросает исключение Zend. Установка session.gc_probability в 0 решило проблему. Папка сеанса в любом случае очищается от работы cron, поэтому нет необходимости в том, чтобы сборщик мусора php даже запускался.
От http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage
Фактически изменение каталога session.save_path отключает сбор мусора. Вот почему он теперь работает для вас. Если вы хотите сбор мусора, вы можете изменить оригинального владельца каталога на пользователя php «www-data»,
chown www-data / var / lib / php5
В качестве альтернативы вы можете написать сценарий сбора мусора для нового каталога.
У меня также была проблема с инфраструктурой Symfony, проблема в том, что php не имеет разрешения на каталог хранения сеансов. Просто измените каталог сохранения сеанса на место, где можно записывать файлы. В Zend Framework Bootstrap config ini:
resources.session.save_path = APPLICATION_PATH "/../data/session"
У меня была проблема с OS X 10.8.4 с MAMP, используя первую Zend Framework. Набор каталогов для session.save_path
в php.ini
по умолчанию – /Applications/MAMP/tmp/php
. Я смог решить это, только удалив все в этом каталоге.
Если вы используете PHP 7.0
sudo chown www-data:www-data /var/lib/php/sessions