Я недавно обновил до PHP 5.3, и с тех пор я получаю (спорадические) сообщения об ошибках, которые указывают на Apache (или может быть инструмент для очистки файлов сессии), не имеет никаких полномочий к папке, где сессии хранятся.
Это происходит случайным образом и не может быть воспроизведено с точными шагами, которые привели меня предполагать, что это - инструмент для очистки сессии.
У кого-либо есть опыт с такими ошибками?
Сообщение об ошибке (в который стреляют session_start()
строка):
ps_files_cleanup_dir: opendir (/var/lib/php5) перестал работать: Разрешение отклонено.
ls - буква на каталоге сессии дает:
drwx-wx-wt 2 root root 4096 2010-05-25 12:39 php5
В этом каталоге я действительно вижу файлы сессии, принадлежавшие www-данным, которые являются моим Apache, и приложение действительно хорошо работает. Который заставляет меня задаться вопросом, под которым пользователь делает сессию выполнения GC?
Исправление: В вашем php.ini
установите для session.gc_probability
значение 0
Причина Думаю, я нашел ответ здесь http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage
По сути, сборка мусора настраивается для выполнения заданиями cron в некоторых системах (например, Ubuntu / Debian). Некоторые исполняемые файлы php ini, такие как php-cli, также пытаются выполнить сборку мусора, что приводит к полученной вами ошибке.
В настоящее время я использую решение (которое, я не уверен, является правильным) - передать право владения папкой сеанса пользователю Apache (www-data в моем случае).