php 5.3 for windows有non thread safe和thread safe两种版本,此外还分VC9和VC6之分。
首先说说选VC9还是VC6,根据官方说明,使用IIS作为服务器的童鞋,选择VC9版本。VC9的版本是用VS2008的编译器编译的,表现更好更稳定些,但是需要VC2008的运行库(64位的童鞋自觉选择x64)。使用Apache1或者2的童鞋,选择VS6编译的VC6版本。
然后是让人莫名其妙的thread safe,官方亲切的“Which version do I choose?”里面没有任何的解释,过去的PHP版本里似乎也没有这样的区分。国际友人Craig Buckler同志的这篇文章里提到了:如果将PHP作为apache的模块,需要下载thread safe;如果将PHP作为cgi binary安装,就选non thread safe。简单的说,就是apache的用thread safe,IIS的用non thread safe。
这篇文章有更详尽的解释(但是他没有给出答案,应该让很多菜鸟头疼了吧),“None-Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查;Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源。再来看PHP的两种执行方式:ISAPI和FastCGI。FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)。而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。”
然后说说PHP的安装过程,官方手册所写的是采用msi来install的,他们一贯的做法都是不会step by step地告诉大家什么时候该点Next或者Finish。用install的的确比zip要省心,但是也有要注意的地方:
- PHP的安装路径最好不要带空格,默认的路径似乎是C:/Program Files/,可以改成X:/PHP/之类的,以免某些个服务器会崩溃。
- 安装PHP前确保Web Sever已经安装好了并且能正常工作。
- 安装过程中,web server的configeration目录得手动选择,默认的目录还是C:/Program Files/(个人认为界面的这个地方不应该填写默认目录,很容易造成误解的)。安装过程中,如果出现带有关键字configeration啊web sever名字的错误,很有可能就是目录选错了。
- 安装完以后,在apache的httpd.conf文件后面会加上以下设置
#BEGIN PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
PHPIniDir “C:/PHP/”
LoadModule php5_module “C:/PHP/php5apache2_2.dll”
#END PHP INSTALLER EDITS – REMOVE ONLY ON UNINSTALL
为了apache能正确识别php,我又加了两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
这行也修改了DirectoryIndex index.php index.html
MySQL安装到最后,Excute的时候,启动服务,常常会出现Error0,原因很多,一般来说卸载干净了,去掉了系统服务项(自己动手不放心可以用360啊这种软件办),重新安装一次就没有问题。还有以下其他歪门邪道方案:重新启动以后再试一次;看看3306端口是不是被占用了……之类的。
觉得这个东西……真是个费时间的活,我还想减肥呢。