Fatal error: session_start() [function.session-start]: Failed to initialize storage module: files (path: ) in C:\usr\phpMyAdmin\libraries\session.inc.php on line 75
核心提示:session 存儲處理器初始化失敗,路徑為空。
Apache2.2/logs/error.log 確認無其他異常;session.save_handler:php.ini 中必須為 files;session.save_path:去掉行首分號 ;,設置有效絕對路徑,如 D:\php\temp;chmod 700 + 屬主為 php-fpm 用戶);; php.ini session.save_handler = files session.save_path = "D:/php/temp" ; Windows 用正斜杠或雙反斜杠 ; session.save_path = "/var/lib/php/sessions" ; Linux 典型路徑
<?php
$sessSavePath = dirname(__FILE__) . "/../cache/sessions/";
if (is_writeable($sessSavePath) && is_readable($sessSavePath)) {
session_save_path($sessSavePath); // 關鍵:運行時修改存儲路徑
}
session_start(); // 之後調用
?>
注意:session_save_path() 必須在 session_start() 之前調用,且目錄需預先創建且權限正確。
Fatal error: main() ... The script tried to execute a method or access a property of an incomplete object原因:unserialize() 時類定義未加載(如 Session 存儲對象,反序列化前未 include 類文件)。
修復:
session_start() 前 require_once 'ClassName.php';;spl_autoload_register() / __autoload() 自動加載;Serializable 接口控制序列化行為。現象:代碼經 Zend Guard 加密後運行報錯。
排查:
php.ini 中 zend_extension 路徑正確。