編譯器版本差異
| 版本 | 編譯器 | 適用 Web 服務器 | 備註 |
| VC6 x86 | Visual Studio 6 (1998) | Apache 1.x / 2.0 / 2.2 (mod_php) | 傳統 Apache 模塊模式必選 |
| VC9 x86 | Visual Studio 2008 | IIS (FastCGI)、Apache 2.4+ (FCGI) | 現代 Windows 環境首選,性能更優 |
| VC11 x86 | Visual Studio 2012 | PHP 5.5+,需 Windows 7/Server 2008 R2 以上 | PHP 7.0+ 僅提供 VC14+ |
| VC14 x64 | Visual Studio 2015 | PHP 7.0+ 64位,生產環境標配 | 需 VC++ 2015 運行時庫 |
線程安全性選擇
| 類型 | 線程安全 | 適用 SAPI | 性能 |
| Thread Safe (TS) | 是 | Apache mod_php (Worker MPM)、IIS (ISAPI 罕用) | 略低(鎖開銷) |
| Non Thread Safe (NTS) | 否 | FastCGI (PHP-FPM)、CLI、IIS FastCGI | 更高(無鎖) |
決策流程圖
Windows + Apache ?
├─ 是 → Apache 版本?
│ ├─ 2.0/2.2 (mod_php) → VC6 TS (php5apache2_2.dll)
│ └─ 2.4+ (mod_fcgid/proxy_fcgi) → VC14+ NTS + PHP-FPM
└─ 否 → IIS / Nginx / 其它 ?
└─ FastCGI 模式 → VC14+ NTS (php-cgi.exe)
常見誤區澄清
- 「官方不建議 NTS 用於生產」:舊版文檔殘留說法。現代 PHP (7.0+) 官方推薦 NTS + FastCGI 作為高性能生產部署方式。
- 「VC9 比 VC6 快」:編譯器優化確實帶來 10-20% 性能提升,但關鍵在於SAPI 模式匹配,VC6 TS 跑 FastCGI 同樣會崩潰。
- 「64 位一定比 32 位快」:僅在大內存、高並發、密集計算場景顯著;小站點 32 位兼容性更好。
驗證當前運行版本
<?php
echo 'PHP Version: ' . PHP_VERSION . PHP_EOL;
echo 'Compiler: ' . PHP_COMPILER_ID . PHP_EOL; // MSVC14 (Visual C++ 2015) 等
echo 'Architecture: ' . (PHP_INT_SIZE === 8 ? '64-bit' : '32-bit') . PHP_EOL;
echo 'Thread Safety: ' . (ZEND_THREAD_SAFE ? 'TS' : 'NTS') . PHP_EOL;
echo 'SAPI: ' . PHP_SAPI . PHP_EOL; // apache2handler / fpm-fcgi / cli
?>
下載地址