1、PHP介绍
1.1 Windows下的php有两个版本,线程安全(Thread Safe)和非线程安全(Non Thread Safe)。
1.2 由于Linux/Unix系统采用的是多进程的工作方式,所以linux服务器下的PHP,没有PHP线程安全和非线程安全版的区分。
所以现在说的TS和NTS版本只是对于Windows下的PHP来说的。
2、PHP说明
2.1 TS是指具有多线程能力的构建,NTS是指单线程构建。TS二进制文件的用例涉及与作为模块加载到Web服务器的多线程SAPI和PHP进行交互。对于NTS二进制文件,广泛的用例是通过FastCGI协议与Web服务器进行交互,不使用多线程(也可以是CLI)。
2.2 Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分的。
3、PHP运行方式
3.1 CGI(Common Gateway Interface,通用网关接口)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
3.2 FastCGI 可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载,也是 CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。
3.3 ISAPI(Internet Server Application Program Interface,网络服务端应用编程端口)微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。但是以ISAPI模式的缺点就是稳定性不好,当PHP出错的时候,Apache进程也死掉。
4、PHP选择
4.1 Non Thread Safe(非线程安全)版本php适用在使用CGI以及fastCGI的web服务器上,如nginx,lighttpd以及IIS的CGI模式下
4.2 Thread Safe(线程安全)版本php适用在使用ISAPI或者module的web服务器上,如IIS的ISAPI模式或者apache module模式
目前有 0 条评论