当前位置:首页 > 高端制造 > 正文

卓象程序员:PHP TS 和 NTS 版本选择

一、序言在PHP开发和生产环境搭建过程中,需要安装PHP语言解析器。官方提供了2种类型的版本,线程安全(TS)版和非线程安全(NTS)版,有时后我们开发环境和实际生产的环境有所不同,因此也需要选择安装对应的PHP版本。二、简介TS(Thread-Safety)即线程安全,多线程访问时,采用了加锁机制...

一、序言在PHP开发和生产环境搭建过程中,需要安装PHP语言解析器。官方提供了2种类型的版本,线程安全(TS)版和非线程安全(NTS)版,有时后我们开发环境和实际生产的环境有所不同,因此也需要选择安装......

一、序言

在PHP开发和生产环境搭建过程中,需要安装PHP语言解析器。官方提供了2种类型的版本,线程安全(TS)版和非线程安全(NTS)版,有时后我们开发环境和实际生产的环境有所不同,因此也需要选择安装对应的PHP版本。


二、简介

TS(Thread-Safety)即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染php以ISAPI方式加载的时候选择这个版本,php以ISAPI方式加载的时候选择这个版本.

NTS(None-ThreadSafe)即非线程安全,就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的是脏数据php以fast-cgi方式运行的时候选择这个版本,具有更好的性能;

ISAPI(InternetServerApplicationProgrammingInterface),通常是指被http服务器所加载,以服务器的模块形式运行,由微软提出,故只能在win平台上运行,如win下的apache,iis[用fastcgi方式工作更稳定],而linux上php则以Apache模块(常用方式)或者php-fpm(该方式更适合于NGINX+PHP运行)的方式运行。

CGI(CommonGatewayInterface):HTTP服务器与客户端机器上的程序进行“交谈”的一种工具,简而言之,cig就是一种后台语言,可以与服务器进行通讯。此时的php是作为一个独立的程序运行的,特点就是耗费内存。

FAST-CGI是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一个新进程。这种方式是与语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。

三、选择

通常win下PHP+Apache组合,以ISAPI的方式运行。

而linux下通常分为2种:

Apache+PHP,PHP一般作为Apache的模块进行运行;

Nginx+PHP,以php的Fast-cgi的方式,即php-fpm的方式运行,该方式对高并发、高负载有良好的性能体现,因此很多网站采用该方式进行环境的搭建。

Nginx较Apache的配置要少很多,因此人为出错的概率要少一点,但也因此Apache的稳定性要比Nginx高。

四、总结

以ISAPI方式运行就用TS线程安全版

以FAST-CGI或PHP-FPM方式运行就用NTS非线程安全版

通常Windows下Apache+PHP选TS,IIS(fast-cgi)+PHP选TNS

通常Linux下Apache+PHP选TS,Nginx+PHP选TNS


最新文章