刚刚去下载Xdebug 时发现windows 下有很多版本,而这些版本是要根据自己的PHP 版本来选择的,有VC6、VC9、Thread Safe 以及Non Thread Safe。百度了一下,发现是这样的:
1. VC6 与VC9 是编译环境的不同产生的,从PHP5.3.0 开始(之前全都是VC6),PHP 分了VC6 和VC9 的区别(仅限于windows 环境)
VC6 版本是使用 Visual Studio 6 编译器编译的,如果你是在windows下使用Apache+PHP 的,请选择VC6版本。
VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你是在windows下使用IIS+PHP 的,请选择VC9版本。
2. Non Thread Safe 和Thread Safe
Non Thread Safe 就是非线程安全,在执行时不进行线程(Thread)安全检查;
Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源;
3. Windows下PHP 的两种执行方式:ISAPI 和 FastCGI
ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;
FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP,建议选择 Non Thread Safe 版本。
PS: 官方并不建议你将Non Thread Safe 应用于生产环境。
个人觉得windows 下最好是 Apache + PHP(VC6 + ISAPI + Thread Safe) ^_^