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

IIS 整合 PHP 完整配置指南:從安裝到驗證的詳細步驟

編輯:關於伺服器

前言

在 Windows Server 環境下,IIS (Internet Information Services) 是原生的 Web 伺服器平台。若需運行 PHP 應用程式,必須正確配置 IIS 支援 PHP 解析。本文提供從 PHP 下載、安裝、環境變數設定、php.ini 調整,到 IIS ISAPI 映射配置的完整圖文教學,適用於 IIS 6.0/7.x/8.x/10.x 環境。

第一階段:PHP 核心安裝與環境配置

1. 下載與解壓

  • 官方下載頁:https://windows.php.net/download/
  • 選擇 Non Thread Safe (NTS) 版本 (搭配 IIS FastCGI 最佳)
  • 解壓至自訂目錄,建議:C:\php (避免空格與中文路徑)

2. 系統環境變數設定 (關鍵步驟)

以系統管理員身分開啟「編輯系統環境變數」:

  1. 在「系統變數」區找到 Path,點「編輯」→「新增」→ 加入 C:\php
  2. 同樣在「系統變數」新增變數名 PHPRC,值設為 C:\php (指定 php.ini 位置)

優點:免將 DLL 複製至 System32,避免版本衝突,方便多版本共存與升級。

3. 建立並調整 php.ini

cd C:\php
copy php.ini-production php.ini

使用編輯器 (VS Code / Notepad++) 修改關鍵項:

指令名稱建議值說明
extension_dirext相對路徑即可,指向擴充模組目錄
cgi.force_redirect0IIS 必須設 0,否則 404/500 錯誤
cgi.fix_pathinfo1支援 PATH_INFO (如 CodeIgniter/Laravel)
fastcgi.impersonate1啟用 FastCGI 模擬安全權限
date.timezoneAsia/Taipei設定預設時區,避免日期函數警告
display_errorsOff生產環境關閉錯誤顯示,改寫入日誌
error_logC:\php\logs\php_errors.log指定錯誤日誌路徑,需建立資料夾並給 IIS_IUSRS 寫入權限
session.save_pathC:\php\sessionsSession 儲存路徑,同樣需寫入權限
upload_max_filesize20M上傳大小限制,配合 post_max_size
post_max_size25MPOST 總大小,需大於 upload_max_filesize

4. 啟用常用擴充模組

在 php.ini 中搜尋以下行,移除前方分號 ; 啟用:

extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl
extension=xml
extension=zip
extension=intl
; Windows 特有
extension=com_dotnet

視專案需求啟用 sqlsrv、pdo_sqlsrv (連接 SQL Server)、redis、memcached 等第三方擴充 (需另行下載 DLL 放入 ext 目錄)。

第二階段:IIS 整合配置 (以 IIS 10 / Windows Server 2019 為例)

1. 安裝必要 IIS 角色服務

開啟「伺服器管理員」→「新增角色及功能」→ 勾選:

  • Web 伺服器 (IIS) → 應用程式開發 → CGI (含 FastCGI 模組)
  • Web 伺服器 → 一般功能 → 預設文件、目錄瀏覽、靜態內容
  • 管理工具 → IIS 管理主控台

2. 建立 PHP 對應的 FastCGI 應用程式

  1. 開啟 IIS 管理員 (inetmgr)
  2. 點擊伺服器節點 → 雙擊 FastCGI 設定
  3. 右側動作窗格點 新增應用程式...
  4. 完整路徑:C:\php\php-cgi.exe
  5. 監視檔案:C:\php\php.ini (修改 ini 後自動回收進程)
  6. 實例最大數:10 (視 CPU 核心數調整)
  7. 環境變數:新增 PHP_FCGI_MAX_REQUESTS=10000 (防止記憶體洩漏)

3. 建立 .php 副檔名處理常式對應

  1. 在 IIS 管理員中選取目標網站 (或伺服器層級統一設定)
  2. 雙擊 處理常式對應
  3. 右側點 新增模組對應...
  4. 請求路徑:*.php
  5. 模組:FastCgiModule (下拉選單選擇)
  6. 可執行檔:C:\php\php-cgi.exe
  7. 名稱:PHP via FastCGI
  8. 點「要求限制」→ 取消勾選「叫用處理常式僅當要求對應至: 檔案」 (允許路由框架運作)

4. 設定預設文件優先順序

  1. 選取網站 → 雙擊 預設文件
  2. 右側點 新增... 輸入 index.php
  3. 將 index.php 移至最上方 (最高優先級)

5. 資料夾權限設定 (關鍵安全步驟)

# 以系統管理員 CMD/PowerShell 執行
icacls "C:\php" /grant "IIS_IUSRS:(OI)(CI)RX" /T
icacls "C:\inetpub\wwwroot" /grant "IIS_IUSRS:(OI)(CI)RX" /T
# 若有上傳/快取目錄
icacls "C:\php\sessions" /grant "IIS_IUSRS:(OI)(CI)M" /T
icacls "C:\php\logs" /grant "IIS_IUSRS:(OI)(CI)M" /T

第三階段:驗證與測試

1. 建立測試頁面

在網站根目錄 (如 C:\inetpub\wwwroot) 建立 phpinfo.php:

<?php
phpinfo();
?>

2. 瀏覽器驗證

訪問 https://localhost/phpinfo.php 或 https://<伺服器IP>/phpinfo.php。若顯示 PHP 版本資訊表格 (紫色標題列),代表配置成功!

3. 常見錯誤排查

現象可能原因解決方案
HTTP 500 / 空白頁php.ini 錯誤、擴充模組缺失 DLL、權限不足檢查 C:\php\logs\php_errors.log、Event Viewer → Application、確認 VC++ Redistributable 已安裝
HTTP 404.3處理常式對應未建立或路徑錯誤重新檢查 FastCGI 應用程式與模組對應設定
No input file specifiedcgi.fix_pathinfo=0 或路徑問題設定 cgi.fix_pathinfo=1,確認網站實體路徑正確
擴充模組無法載入DLL 版本不符 (TS/NTS 混用)、缺少相依 DLL確認下載 NTS 版、安裝對應 VC++ Runtime、使用 Dependency Walker 診斷

進階優化建議

  • 啟用 OPcache:在 php.ini 設定 opcache.enable=1、opcache.memory_consumption=128、opcache.max_accelerated_files=10000,大幅提升效能。
  • 使用 PHP Manager for IIS:GUI 介面管理多版本 PHP、擴充模組、錯誤日誌,極大降低維運複雜度。
  • 配置 WinCache:微軟針對 IIS 優化的快取擴充,支援 Session、檔案、使用者快取。
  • 定期更新:關注 PHP 安全公告,及時套用安全更新。

結語

完成上述步驟,您的 IIS 即具備生產級 PHP 運行環境。建議後續導入 Composer 管理套件、配置 SSL 憑證、設定 URL Rewrite (匯入 .htaccess 規則)、部署應用程式 (Laravel, Symfony, WordPress 等)。妥善規劃權限、日誌輪替與監控告警,即可穩定服務線上業務。

Copyright © Windows教程網 All Rights Reserved