Файлы сеанса PHP имеют права доступа 000 — они непригодны для использования.

Файлы сеанса PHP имеют права доступа 000 — они непригодны для использования.

У меня постоянно возникали проблемы с системой управления документами, которую я пытался установить, поскольку на первом этапе процесса установки возникала следующая ошибка:

Warning: Unknown: open(/tmp/sess_d39cac7f80834b2ee069d0c867ac169c, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Я посмотрел в /tmp и увидел, что файлы sess_* имеют следующие разрешения

---------- 1 vanced vanced 1240 Jan 20 08:48 sess_d39cac7f80834b2ee069d0c867ac169c

Все файлы сессий выглядят так. Очевидно, что PHP их не использует, и это доставляет мне массу проблем.

Как мне заставить PHP установить правильные разрешения? Я пробовал изменить каталог, который использует php.ini, на /tmp/phpsessions, и происходит то же самое. Каталоги — a+rwx.

решение1

Папка /tmpявляется заглушкой по умолчанию для файлов сеанса. Лучше использовать собственную папку сеанса

Если ваш хост разрешил .htaccessпереопределение разрешений, вы можете поместить следующую директиву в свою .htaccessпапку public_htmlили httpdocsподкаталог

php_value session.save_path '/yourpath/sessionfolder'

Если вы НЕ работаете phpв suphpрежиме, убедитесь, что папка доступна для записи другим пользователям ( 777)

решение2

Есть ли специальные umaskнастройки для этой учетной записи? Похоже, где-то кто-то мог неправильно настроить ее. Она должна возвращать что-то вроде:

% umask
0022

решение3

Чтобы узнать umask запущенного процесса:

https://stackoverflow.com/questions/165212/linux-getting-umask-of-an-already-running-process

решение4

Попробуйте изменитьumaskв реальном применении.

Найдите файл index.php или bootstrap и добавьте вверху:

umask(0022);

Связанный контент