Задать вопрос
Sky4eg
@Sky4eg
Web разработчик

Session_start и Permission denied (13)?

Добрый день, столкнулся с проблемой на сервере:
Message: Zend_Session::start() - /home/sky/site/public_html/library/Zend/Session.php(Line:469): Error #2 session_start() [function.session-start]: open(/tmp/sess_hks4rn1aagba1j7pfi5gltje12, O_RDWR) failed: Permission denied (13) Array /home/sky/site/public_html/library/Zend/Session.php(Line:479): Error #2 session_write_close() [function.session-write-close]: open(/tmp/sess_hks4rn1aagba1j7pfi5gltje12, O_RDWR) failed: Permission denied (13) Array /home/sky/site/public_html/library/Zend/Session.php(Line:479): Error #2 session_write_close() [function.session-write-close]: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp)



Сервер работает под php-fpm + nginx. В php.ini save_path указан корректно /tmp, права доступа на папку 777. Уже обгуглился, но ничего не помогает. Это не обязательно с Zend'ом выскакивает, простой старт сессии порой выводит то же самое. Иногда сессия стартует нормально без ошибок.
  • Вопрос задан
  • 12748 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Sky4eg
@Sky4eg Автор вопроса
Web разработчик
прописал в конфиге пула и настройки сайта
fastcgi_pass unix:/var/run/php-fpm/sky.sock; вместо
fastcgi_pass 127.0.0.1:9000;

и проблема исчезла
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
charon
@charon
кстати, права доступа 777 на /tmp — это ошибка, которая может привести к труднодиагностируемым косякам. Правильные права: 1777
Ответ написан
Комментировать
taliban
@taliban
php программист
Уберите save_path, он итак поумолчанию в tmp сохраняет, и проверьте точно ли Вы тот php.ini правили. Лично у меня их 4 штуки, отдельно для апача, cli, fpm (/etc/php5/fpm/php.ini) и cgi.
Ответ написан
Комментировать
charon
@charon
1. Не используйте /tmp для хранения сессий. Лучше в /var создать каталог. Вот чем вас не устраивает стандартный /var/lib/sessions?
2. Необходимо всё-таки выяснить под каким пользователем работает скрипт. Вариант:
$info = posix_getpwuid(posix_getuid());
$login = $info['name'];

вот именно этого пользователя назначьте владельцем каталога для сессий и поставьте ему право на запись. Если много таких, то загоните их в одну группу и дайте право на запись ей.
3. Проверьте SELinux — для теста отключить.
Ответ написан
gaelpa
@gaelpa
Chroot в конфиге fpm не прописан часом?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы