在 Windows Server 2008 上建置 IIS + PHP + MySQL 經典架構,需注意版本相容性。建議採用:IIS 7.0/7.5(內建)、PHP 7.4 或 8.0(非執行緒安全版)、MySQL 5.7 或 8.0。安裝前請確認已套用最新 Windows Update,並停用防火牆或開放 80、3306 連接埠。
https://localhost 驗證 IIS 運作正常。php-8.0.30-nts-Win32-vs16-x64.zip),解壓至 C:\PHP。php.ini-development 為 php.ini,修改關鍵設定:
extension_dir = "ext"extension=mysqli、extension=pdo_mysql、extension=openssl、extension=mbstring、extension=curl、extension=gdcgi.force_redirect = 0、cgi.fix_pathinfo = 1、fastcgi.impersonate = 1date.timezone = "Asia/Taipei"C:\PHP 加入系統環境變數 Path。*.phpFastCgiModuleC:\PHP\php-cgi.exePHP_via_FastCGIphp-cgi.exe,設定 instanceMaxRequests=10000、activityTimeout=70。C:\inetpub\wwwroot\phpinfo.php,內容 <?php phpinfo(); ?>,瀏覽器驗證 PHP 運作。MySQL80。mysql -u root -p
db_test.php:<?php
$mysqli = new mysqli("127.0.0.1", "root", "您的密碼", "mysql");
if ($mysqli->connect_errno) {
die("連線失敗: " . $mysqli->connect_error);
}
echo "MySQL 連線成功!版本: " . $mysqli->server_info;
$mysqli->close();
?>php.ini:max_execution_time=300、memory_limit=256M、upload_max_filesize=20M、post_max_size=20M。my.ini:innodb_buffer_pool_size=1G(視記憶體而定)、max_connections=200。expose_php、display_errors(生產環境)。| 現象 | 可能原因 | 解決方向 |
|---|---|---|
| PHP 頁面顯示空白/500 錯誤 | 語法錯誤、擴充模組缺失、權限不足 | 檢查 PHP 錯誤日誌、啟用 display_errors、確認擴充模組 DLL 存在 |
| MySQL 連線失敗 | 服務未啟動、密碼錯誤、防火牆阻擋、連接埠衝突 | 檢查服務狀態、重置密碼、開放 3306、netstat -ano 確認連接埠 |
| 中文亂碼 | 字元集不一致 | 資料庫/資料表/連線均設為 utf8mb4,PHP 設定 default_charset=utf-8 |
Windows Server 2008 雖已停止主流支援,但在舊有系統維護案例中仍具參考價值。本教學涵蓋 IIS、PHP、MySQL 三大核心元件的安裝、配置、整合與安全強化,遵循最佳實務原則。實際部署時請依據專案需求調整版本選擇與參數調校,並建立完整備份與災難恢復機制。