
У меня постоянно возникали проблемы с системой управления документами, которую я пытался установить, поскольку на первом этапе процесса установки возникала следующая ошибка:
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);