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覆蓋權限,您可以將以下指令放在您的.htaccesspublic_htmlhttpdocs資料夾中

php_value session.save_path '/yourpath/sessionfolder'

如果您沒有phpsuphp模式下運行,請確保該資料夾可供其他人寫入 ( 777)

答案2

umask這個帳戶有特殊設定嗎?看起來好像有人在某個地方設置不當。它應該會返回類似以下內容:

% umask
0022

答案3

答案4

嘗試改變遮罩在實際應用中。

找到index.php或bootstrap文件,並在頂部添加:

umask(0022);

相關內容