Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

phpMyAdmin 空白頁/require_once 失敗:根目錄部署與權限雙重陷阱完美修復

編輯:關於伺服器

錯誤現象

Warning: require_once(./libraries/common.lib.php) failed to open stream: No such file or directory in D:\phpmyadmin\index.php on line 36
Fatal error: require_once() Failed opening required './libraries/common.lib.php'

兩大核心根因

1. 部署在磁碟根目錄(如 D:\phpmyadmin)

  • PHP 解析相對路徑 ./libraries/ 時,工作目錄可能不是腳本所在目錄,而是 IIS 網站根目錄或系統目錄。
  • 導致 ./libraries/common.lib.php 解析為 D:\libraries\common.lib.php(不存在)。

2. 目錄 NTFS 權限缺失

  • IIS 匿名用戶(IUSR_*)或應用程式池身份(IIS_IUSRS)無 phpmyadmin 目錄及父目錄的讀取/執行權限。
  • 導致 PHP 進程無法遍歷目錄、讀取檔案。

標準修復方案

步驟一:移至標準網站目錄結構

# 建議結構
D:\WebSites\example.com\wwwroot\phpmyadmin\
# 或
D:\WebSites\phpmyadmin\
  • 避免根目錄、避免中文路徑、避免特殊字符。
  • 在 IIS 中建立虛擬目錄/應用程式指向該路徑。

步驟二:配置精確 NTFS 權限

操作:右鍵目錄 → 屬性 → 安全性 → 編輯 → 添加上述主體 → 勾選權限 → 勾選「替換子物件權限條目」→ 確定。

步驟三:驗證 php.ini 關鍵設定

; 確保包含當前目錄
include_path = ".;C:\php\pear;D:\WebSites\phpmyadmin"

; 確保 session 路徑可寫
session.save_path = "D:\Temp\PHP_Sessions"
; 並給 IIS_IUSRS 寫入權限

步驟四:重啟驗證

  1. iisreset
  2. 瀏覽器訪問 https://domain/phpmyadmin/
  3. 應顯示登入介面,無錯誤。

進階:config.inc.php 關鍵配置

$cfg['Servers'][$i]['host'] = '127.0.0.1';  // 或 localhost
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['auth_type'] = 'cookie';  // 建議 cookie 認證
$cfg['Blowfish_secret'] = 'your_32chars_random_string_here';  // 必填
$cfg['TempDir'] = 'D:/WebSites/phpmyadmin/tmp/';  // 絕對路徑,需可寫

常見誤區對照表

主體權限適用範圍
IUSR_機器名 (或 IIS_IUSRS)讀取和執行、列出資料夾內容、讀取phpmyadmin 目錄及所有子目錄/檔案
Users (或應用程式池自訂用戶)讀取和執行、列出資料夾內容、讀取同上
SYSTEM / Administrators完全控制同上(繼承)
誤區正確做法
直接解壓到 D:\phpmyadmin放入網站目錄結構內,配合虛擬目錄
給 Everyone 完全控制最小權限:僅 IIS 匿名/池身份 讀取/執行
忽略 include_path確保包含 phpMyAdmin 目錄或依賴庫路徑
不設 Blowfish_secret必須設定 32 字元隨機字串,否則 cookie 認證失效

總結

phpMyAdmin 部署核心兩條:目錄結構規範化 + NTFS 最小權限。避開根目錄陷阱、給對人給對權、配好 config.inc.php,一次部署、長期無憂。

Copyright © Windows教程網 All Rights Reserved