在配置IIS环境以支持PHP时,有三种主要的方式:CGI、ISAPI和FastCGI。以下是针对这些方式的详细解析:
1. **CGI方式** (早期常见,当前较少使用)
- CGI(Common Gateway Interface)是通过在服务器上执行独立的外部脚本来处理HTTP请求的。在IIS中,配置解释器为php.exe,特点是稳定性较高,但效率较低,因为每个HTTP请求都会启动一个新的PHP进程,不适合高并发环境。
2. **ISAPI方式** (目前最常用)
- ISAPI(Internet Server Application Programming Interface)是IIS的一种插件形式,通过php5isapi.dll实现。ISAPI支持多线程,使得一个进程可以同时处理多个请求,提高了效率。然而,由于线程管理的复杂性,ISAPI在某些情况下可能不够稳定。
3. **FastCGI方式** (未来趋势,IIS7及以上内置)
- FastCGI相对更现代,与ISAPI相比,它在IIS环境中并不常见,但在其他系统中广泛使用。FastCGI通过异步方式处理请求,效率高且稳定性好。从IIS7.0开始,FastCGI被内置,成为官方推荐的PHP配置方式,因为它能够更好地利用IIS的资源,提升网站性能,尤其是在高并发场景下。
选择FastCGI的原因在于,随着PHP版本升级,如PHP 5.3.2,ISAPI支持逐渐减少,而FastCGI由于其非线程安全(NonThreadSafe)特性,能够优化单线程环境下的执行效率。对于Windows用户来说,如果使用IIS,应选择VC9编译的ThreadSafe版本(带线程安全检查),但为了追求更快的响应速度和生产力,尤其是使用FastCGI时,建议下载NonThreadSafe版本的PHP,因为它消除了不必要的线程安全检查。
下载PHP时,要根据你的具体需求和所使用的服务器环境(如Apache或IIS)来选择适当的编译器版本。对于Apache用户,选择VC6版本;而对于IIS用户,应选用VC9版本。安装时,通常下载ZIP套件,因为它们包含了所有必要的组件,无需额外安装步骤。
为了获得最佳的IIS+PHP环境,建议采用FastCGI方式,并根据你的服务器配置和需求选择合适的编译器版本。这样可以确保高效的网站性能和良好的稳定性。