此錯誤與文章 148017 相同核心原因:Session 儲存路徑權限或 Safe Mode 限制。本文補充 phpMyAdmin 具體修改步驟與驗證腳本。
<?php
$r = session_start();
var_dump($r);
若輸出含 SAFE MODE Restriction ... uid 501 not allowed to access /tmp owned by uid 0,確認為 Safe Mode 權限問題。
<?php
session_save_path('/data/www/session'); // 必須在 session_start() 之前
session_start();
目錄需預先建立並授權:
mkdir -p /data/www/session
chown www:www /data/www/session
chmod 770 /data/www/session
編輯 libraries/session.inc.php,在每次 session_start() 前插入:
session_save_path('/data/www/session');
完整片段:
if (!isset($_COOKIE[$session_name])) {
$orig_error_count = $GLOBALS['error_handler']->countErrors();
session_save_path('/data/www/session'); // 新增
$r = session_start();
...
} else {
session_save_path('/data/www/session'); // 新增
session_start();
}
@ini_set('session.save_path', ...) **無效**,必須用 session_save_path() 函式。find /data/www/session -type f -mtime +1 -delete)。檢查 session.save_path 目錄是否存在、權限、磁碟空間、inode 是否耗盡。