1. 下载地址
http://windows.php.net/download/
2. PHP大版本
- PHP4:由于太古老、对OO支持不力已基本被淘汰。
- PHP5:分为三个分支——PHP5.2之前的版本、PHP5.2.X-5.3.X和PHP5.4之后的版本。
①PHP5.2之前的版本:因为某些功能缺陷或者BUG,PHP5.2之前的版本基本不用。
②PHP5.2.X-5.3.X:PHP5.2.X稳定性有很大的提升,而PHP5.3.X在稳定性上更胜一筹,增加了很多PHP5.2所不具有的功能,比如内置php-fpm、更完善的垃圾回收算法、命名空间的引入、sqlite3的支持等等。推荐5.3.3
③PHP5.4之后的版本:特性有一些变化,现在PHP官网下载中只有PHP5.4以上的版本下载。
- PHP6:基本没有生产线上的应用,还基本只是一款概念产品。
3. x86/x64
- x86:32位操作系统
- x64:64位操作系统
4. VC6/VC9/VC11
VC6、VC9、VC11分别代表Visual C++ 6、Visual C++ 2008、Visual C++ 2012编译。
需要注意的是VC9版本需要安装Visual C++ Redistributable for Visual Studio 2008 SP1,而VC11则需要安装Visual C++ Redistributable for Visual Studio 2012。
5. Thread Safety(线程安全)、None-Thread Safe(非线程安全)
- Thread Safety:一般在IIS以ISAPI方式加载的时候选择这个版本。
- None-Thread Safe:一般以FastCGI方式运行的时候选择这个版本,具有更好的性能。
CGI、ISAPI和FastCGI比较:
- CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
- ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。
- FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是 CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。
PHP采用ISAPI和FastCGI的优缺点:
- ISAPI:以 ISAPI 模式运行 PHP 的,这种方式最大的缺点就是稳定性不好,当 PHP 出错的时候,Apache进程也死掉。
- FastCGI 模式运行 PHP 的优点:
首先就是 PHP 出错的时候不会搞垮 Apache,只是 PHP 自己的进程当掉(但 FastCGI 会立即重新启动一个新 PHP 进程来代替当掉的进程)。其次 FastCGI 模式运行 PHP 比 ISAPI 模式性能更好
最后,就是可以同时运行 PHP5 和 PHP4
- FastCGI 模式的一些缺点:
用 FastCGI 模式更适合生产环境的服务器,但对于开发用机器来说就不太合适。因为当使用 Zend Studio 调试程序时,由于 FastCGI 会认为 PHP 进程超时,从而在页面返回 500 错误。
6. Apache
- Apache有两个下载地址:
①Apache Lounge:http://apachelounge.com/,使用PHP VC11 x86或者x64版本
②Apache.org:http://apache.org/,只能使用VC6版本,无法使用VC9+以上版本。
Apache现在主流的两个版本是2.2和2.4,注意在于PHP进行整合时,如果使用的是2.2,则在选择php时,一定注意所下载的php目录中一定有“php5apache2_2.dll”文件,因为在配置apache的"Apache2.2\conf\httpd.conf"文件中的LoadModule时“LoadModule php5_module "c:/php/php5apache2_2.dll" ”一定是php5apache2_2.dll,否则会出现“the requested operation has failed!"的错误。对于apache2.4同理,只是“LoadModule php5_module "c:/php/php5apache2_4.dll"中用的是2_4。