首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Windows 2000 IIS 5.0 配置 PHP 完整步驟詳解 (ISAPI 模式)

     編輯:PHP 相關知識

環境與版本基線

元件版本/路徑
作業系統Windows 2000 Server / Professional
Web 伺服器IIS 5.0 (內建)
PHP4.x 系列 (官方 Win32 二進制包)
整合模式ISAPI (php4isapi.dll)

步驟 1:取得並部署 PHP 核心檔案

  1. 下載:https://www.onlinedown.net/soft/1774.htm (歷史鏡像,現建議 官方檔案館)
  2. 解壓至 C:\php (建議路徑,避免空格/中文)
  3. 複製 DLL 至系統目錄:
來源:C:\php\dlls\*.dll
目標:C:\WINNT\system32\

來源:C:\php\php4ts.dll
目標:C:\WINNT\system32\
# 原則:目標目錄已存在同名檔案則**勿覆蓋**

步驟 2:建立並調整 php.ini

  1. 開啟 C:\php\php.ini-dist (記事本)
  2. 修改擴充套件目錄:
; 原:
extension_dir = "./"
; 改:
extension_dir = C:\php
  1. 另存為 C:\WINNT\system32\php.ini (注意:存放於 system32,非 Windows 目錄)

路徑說明:Win2K/IIS 5.0 ISAPI 模式下,PHP 進程在系統服務上下文運行,預設搜尋 C:\WINNT\system32\php.ini。若放置 C:\WINNT\php.ini 可能不生效。

步驟 3:IIS 5.0 ISAPI 篩選器註冊 (全域載入 PHP 引擎)

  1. 控制台 → 管理工具 → Internet 服務管理器
  2. 展開左側樹 → 預設 Web 站點 → 右鍵 → 內容
  3. 切換 ISAPI 篩選器 標籤 → 新增
  4. 填入:
欄位值
篩選器名稱php
可執行檔C:\php\sapi\php4isapi.dll (確認實際路徑,通常在 sapi/ 子目錄)
  1. 確定

步驟 4:應用程式對應 (關聯 .php 副檔名)

  1. 同「預設 Web 站點內容」視窗 → 主目錄 標籤 → 設定
  2. 應用程式對應 標籤 → 新增
  3. 填入:
欄位值
可執行檔C:\php\sapi\php4isapi.dll
副檔名.php
動詞所有動詞 / GET,HEAD,POST (預設)
腳本引擎✅ 勾選
檢查檔案是否存在✅ 建議勾選 (安全)
  1. 確定 → 確定 → 確定 關閉所有對話框

步驟 5:驗證部署成果

  1. 在 Web 根目錄 (C:\Inetpub\wwwroot) 建立 test.php:
<?php phpinfo(); ?>
  1. 瀏覽器訪問 https://localhost/test.php
  2. 成功指標:
    • 顯示 PHP 4.x 紫色資訊頁
    • Server API = ISAPI
    • 載入模組區塊顯示預期擴充套件
    • php.ini 路徑顯示 C:\WINNT\system32\php.ini

常見失敗排查

現象原因對策
瀏覽器下載 .php 不執行應用程式對應遺失 / 可執行檔路徑錯誤 / 未勾選腳本引擎重做步驟 4,逐項核對路徑、副檔名、腳本引擎勾選
HTTP 500 內部錯誤php4ts.dll 缺失 / php.ini 路徑錯 / 擴充套件 DLL 版本不符1. 確認 C:\WINNT\system32\php4ts.dll 存在
2. 確認 php.ini 在 C:\WINNT\system32\
3. 僅啟用 C:\php\ 實際存在的擴充套件 DLL
ISAPI 篩選器顯示「向下箭頭」 (未載入)DLL 路徑錯 / 相依 DLL 缺失 / 權限不足事件檢視器 → 系統日誌 查找 IIS/W3SVC 錯誤,依錯誤碼補充 DLL 或調整權限
修改 php.ini 不生效ISAPI 進程快取配置重啟 IIS:net stop iisadmin /y & net start w3svc 或 IIS 管理器重啟站點

安全與效能優化建議

  1. 禁用危險函數 (php.ini):disable_functions = exec,passthru,shell_exec,system,proc_open,popen
  2. 錯誤不顯示細節:display_errors = Off, log_errors = On, error_log = C:\WINNT\php_error.log
  3. Session 儲存路徑:session.save_path = C:\php\sessions (建立目錄,給 IUSR_機器名 寫入權限)
  4. 上傳暫存目錄:upload_tmp_dir = C:\php\uploadtmp (同權限處理)
  5. IUSR_機器名 權限最小化:僅網站目錄讀取、上傳/Session 目錄寫入、系統 DLL 目錄讀取/執行

遷移提示:Win2K/IIS 5.0 → 現代架構

現狀現代替代關鍵變化
IIS 5.0 + PHP 4 ISAPIIIS 10 + PHP 8.x NTS + FastCGI進程隔離、OPcache、現代語法、安全支援
單一 php.ini每站點獨立 .user.ini / PHP-FPM 池配置配置隔離、多版本共存
手動 DLL 部署Web Platform Installer / Chocolatey / 容器映像自動化、版本鎖定、可重現

總結

Win2K IIS 5.0 配置 PHP 4 ISAPI 核心四步:PHP 核心檔案部署 (含 DLL 進 system32) → php.ini 放入 system32 並設 extension_dir → ISAPI 篩選器註冊 php4isapi.dll → 應用程式對應 .php → php4isapi.dll。雙重註冊 (篩選器 + 對應) 為 IIS 5.0 ISAPI 模式特有設計。驗證 phpinfo() Server API = ISAPI 即完成。此架構支撐了早期大量企業內部系統,遷移時保留「進程隔離、配置隔離、最小權限、自動化部署」核心原則即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved