半夜ATM机前看书的那位

导航

PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别

想更新个 PHP 的版本, PHP  windows 版本已经分离出来了,见 http://windows.php.net/download/ ,但是上面有很多不同的版本,包括 VC9, VC6,  x86 Non Thread Safe, x86 Thread Safe, 好像没有 x64 版本的,(现在特别喜欢用 64 位的软件),版本有点多,主要的区别和如何选择不同的版本如下:

VC6 版本是使用 Visual Studio 6 编译器编译的,如果你是在 windows 下使用 Apache+PHP 的,请选择 VC6 版本。

VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你是在 windows 下使用 IIS+PHP 的,请选择 VC9 版本。

Non Thread Safe 就是非线程安全,在执行时不进行线程( Thread )安全检查; 
Thread Safe 
是线程安全,执行时会进行线程( Thread )安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源;

Windows 下的 PHP 主要有两种执行方式: ISAPI  FastCGI 

      ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP ,建议选择 Thread Safe 版本;

      FastCGI 执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI 来执行 PHP ,建议选择 Non Thread Safe 版本。

      官方并不建议你将 Non Thread Safe 应用于生产环境。

     

知识补充:

      ISAPI 缩写词为 Internet Server Application Programming Interface  Microsoft 所提的 Internet server  API  ISAPI 服务器扩展是可以被 HTTP 服务器加载和调用的 DLL  Internet 服务器扩展也称为 Internet 服务器应用程序 (ISA) ,用于增强符合Internet 服务器 API (ISAPI) 的服务器的功能。 ISA 通过浏览器应用程序调用,并且将相似的功能提供给通用网关接口 (CGI)应用程序。

      FastCGI 是一个程序接口,它能加速公共网关接口( CGI ), CGI 是一种用最常见的方式使 Web 服务器调用应用程序的Web 应用程序。按一个 FastCGI 工具来看,用户要求进入一个网站并使用一个专门的应用软件的话,使用 FastCGI 能够快 3 30 倍。 FastCGI  Web 服务器的一种 插件。为了获得良好的性能,它要求对现有服务器应用程序(比如 Perl  Tcl 脚本和 C  C++ 程序)做细小的改动。  

基本上, FastCGI 是一个在单一步骤中管理多重 CGI 请求的程序,为每个请求减少了许多程序指令。没有 FastCGI 的话,每当用户请求某一服务时都会导致 Web 服务器打开 一个新的能控制和执行这项服务的程序,然后关闭它。有了 FastCGI 的话,一个步骤的耗费会被所有当前正处理的请求所分担。与 CGI 不同,有了 FastCGI 的话,每个步骤是独立于 Web 服务器运行的, 这样就提供了更多的安全。 FastCGI 是独立代码的。它的版权属于 Open Market 公司,该公司提供 FastCGI 的免费使用并且将其作为一个公开标准。 FastCGI 提供了唯一一个可以跨平台和在任何 Web 服务器上使用的 无知识产权的方法。

posted on 2011-10-15 12:57  zhizhesky  阅读(369)  评论(0编辑  收藏  举报