本文詳細記錄在 Windows Server 2008 R2 Enterprise 64 位元環境下,使用 IIS 7.0、PHP 5.5.25 與 MySQL 5.5.28 建立 Drupal 7 網站的完整流程,包含軟體準備、環境設定、資料庫匯入、常見錯誤排除等實戰步驟,供需要在 Windows 平台佈署 Drupal 的開發者參考。
參考教學:IIS + PHP Manager + PHP 安裝步驟、CSDN 相關教學
php-5.5.25-Win32-VC11-x64 解壓縮至 C:\ 根目錄。php-development.ini 並重新命名為 php.ini。php.ini,修改擴充模組路徑:extension_dir = "C:\php-5.5.25-Win32-VC11-x64\ext"(請依實際路徑調整,並移除前方分號)。extension=php_curl.dllextension=php_mysql.dllextension=php_mysqli.dllextension=php_pdo_mysql.dllextension=php_xmlrpc.dlldate.timezone = "Asia/Shanghai"。my.ini 設定檔。[mysqld] 區段新增或修改下列參數,依實際需求調整數值:max_allowed_packet=500Mwait_timeout=288000interactive_timeout=288000編輯網站根目錄下的 sites/default/settings.php,找到 $databases 陣列並依下列範例修改:
$databases = array (
'default' => array (
'default' => array (
'database' => '第6步建立的資料庫名稱',
'username' => 'root',
'password' => '你的密碼',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
於瀏覽器輸入網站網址,若出現 HTTP 錯誤 500.0 - Internal Server Error,錯誤訊息提示 FastCGI 進程超過了配置的活動超時時限,請依下列步驟調整:
PHP 處理時間超過 IIS FastCGI 預設的 activityTimeout(預設 30 秒),導致請求中斷。需將逾時時間延長(例如 600 秒)。
%windir%\system32\inetsrv\appcmd list config /section:system.webServer/fastCgiactivityTimeout 為 600 秒(10 分鐘),路徑含空格時必須用雙引號包裹全路徑:%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI "/[fullPath='C:\Program Files\php\php-cgi.exe'].activityTimeout:600"DefaultAppPool。C:\Windows\System32\inetsrv\config\applicationHost.config,尋找 <fastCgi> 區段手動修改對應 application 節點的 activityTimeout 屬性。參考資源:新浪部落格相關討論
完成上述步驟後,Drupal 7 應可在 IIS 7.0 上正常運作。關鍵點在於 PHP 擴充模組完整啟用、MySQL 參數依負載調整、以及 FastCGI 逾時設定需符合 Drupal 複雜頁面的執行時間需求。若遇到其他錯誤,建議優先查閱 IIS 錯誤日誌與 PHP 錯誤日誌進行釐清。