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

Windows 2003 + IIS 6 + PHP 5 出現 HTTP 401.3 錯誤解決:PHP 目錄權限授權指南

編輯:關於伺服器

故障現象

Windows Server 2003 + IIS 6.0 + PHP 5 環境,ASP/HTML 正常,PHP 頁面回傳 HTTP 401.3 - 未經授權:因 ACL 設定拒絕存取。

根本原因

PHP 安裝目錄 (如 C:\PHP、D:\PHP) 的 NTFS 權限缺少 Users 群組的讀取/執行權限,導致 IIS 匿名使用者 (IUSR_*) 或應用程式集區身分無法讀取 PHP 解釋器 (php-cgi.exe) 及擴展模組 (php_*.dll)。

解決方案:授權 Users 群組讀取權限

  1. 開啟「我的電腦」→ 找到 PHP 安裝資料夾 (例:D:\PHP)
  2. 右鍵 → 「內容」 → 「安全性」索引標籤
  3. 點擊「編輯」 → 「新增」
  4. 輸入 Users → 「檢查名稱」 → 確定
  5. 選中 Users → 勾選允許:讀取和執行、列出資料夾內容、讀取
  6. 點擊「套用」 → 選擇「此資料夾、子資料夾和檔案」 → 確定
  7. 重啟 IIS:iisreset /restart

補充:完整 PHP 目錄權限建議表

帳號/群組權限遞歸說明
SYSTEM完全控制✅系統核心需求
Administrators完全控制✅管理員維護
Users讀取和執行、列出資料夾、讀取✅關鍵:IIS 匿名/應用程式集區身分屬於此群組
IUSR_* (匿名帳號)讀取和執行、列出資料夾、讀取✅若應用程式集區用 NetworkService 可不額外添加
NETWORK SERVICE讀取和執行、列出資料夾、讀取✅IIS 6.0 預設應用程式集區身分
CREATOR OWNER完全控制 (僅子檔案)❌系統預設

驗證步驟

  1. 建立測試檔 phpinfo.php:<?php phpinfo(); ?>
  2. 瀏覽器訪問 https://localhost/phpinfo.php
  3. 正常顯示 PHP 資訊頁面即代表修復成功

常見誤區

誤區正確認知
以為是 php.ini 設定錯誤401.3 是 NTFS 檔案系統權限錯誤,非 PHP 設定問題
只給 IUSR_* 權限IIS 6.0 預設應用程式集區跑在 NETWORK SERVICE,建議直接給 Users 群組
給 Everyone 完全控制嚴重安全風險,僅需「讀取/執行」即可

延伸:FastCGI 模式下的權限需求

若使用 FastCGI (非 ISAPI),除 PHP 目錄外,還需確保:

  • C:\WINDOWS\Temp (或 PHP 設定的 session.save_path、upload_tmp_dir) 給 Users/NETWORK SERVICE 寫入權限
  • 網站實體路徑給對應應用程式集區身分讀寫權限

核心口訣:PHP 目錄必給 Users 讀取執行。Windows + IIS + PHP 部署,90% 權限問題皆因漏給 Users 群組權限。設定一次,永久生效。

Copyright © Windows教程網 All Rights Reserved