在 Windows 上安裝 PHP 時,下載頁面提供多種編譯版本,選擇錯誤會導致無法載入模組或執行錯誤。本文快速釐清版本差異與選擇原則。
| 標識 | 編譯器 | 適用 Web 伺服器 |
|---|---|---|
| VC6 | Visual Studio 6 (Legacy) | Apache (httpd) + PHP (mod_php / FastCGI) |
| VC9 | Visual Studio 2008 | IIS (FastCGI) + PHP |
| VC11 | Visual Studio 2012 | PHP 5.5+,Apache 2.4 (VC11 建置) / IIS |
| VC14 | Visual Studio 2015 | PHP 7.0+,Apache 2.4 (VC14/VC15) / IIS |
| VC15 | Visual Studio 2017 | PHP 7.2+,官方推薦版本 |
原則: PHP 編譯器版本必須與 Web 伺服器(或其載入的 PHP 模組)編譯器一致,否則會發生 CRT 衝突導致崩潰。
| 類型 | 適用場景 | 說明 |
|---|---|---|
| Thread Safe (TS) | Apache mod_php、ISAPI、多執行緒環境 | 內建線程安全鎖,效能略低但穩定 |
| Non Thread Safe (NTS) | FastCGI (PHP-FPM、IIS FastCGI)、CLI | 無鎖開銷,效能較高,但不支援多執行緒 SAPI |
mod_php (LoadModule) → TS (VC9/VC11/VC14/VC15 視 Apache 編譯版本而定)FastCGI (php-cgi.exe) → NTSphp-版本-Win32-VC編譯版本-x86/64-TS/NTS.zipphp5apache2_4.dll 無法載入、Apache 崩潰。正確匹配版本是 Windows PHP 部署穩定的前提,部署前請務必確認 Web 伺服器編譯工具鏈與 PHP 版本一致。