php各安装包中TS和NTS及SRC/VC6|VC9|VC11|VC14|VC15版本区别意思详解(转)
1. VC6与VC9的区别:
VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。
VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择 VC9版本。
VC9版本是针对IIS服务器的版本,没有对APACHE的支持,而VC6版本对IIS和apache都提供了支持
2.Ts与nts的区别:
Windows版的PHP从版本5.2.1开始有Thread Safe和NoneThread Safe之分。
先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
3.PHP的两种执行方式:ISAPI和FastCGI。
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择ThreadSafe版本;而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择NonThread Safe版本。
通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。
ts(Thread-Safety)即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染php以ISAPI方式加载的时候选择这个版本.,php以ISAPI方式加载的时候选择这个版本.
nts(None-Thread Safe)即非线程安全,就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的是 脏数据php以fast cgi方式运行的时候选择这个版本,具有更好的性能;ISAPI(Internet Server Application Programming Interface), 通常是指被http服务器所加载,以服务器的模块形式运行,由微 软提出,故只能在win平台上运行,例如win下的apache,iis[据说用fast cgi 方式工作更稳定],而linux上php 则以 Apache模块或者php-fpm的方式运行。
cgi(Common Gateway Interface):HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,说白了,cig就是一种 后台语言,其可以和服务器之间进行通讯。此时的php是作为一个独立的程序运行的。特点就是耗费内存。
fast cgi.是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork.这种方式 是与语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较 高的性能。cgi和fast cgi的区别找度娘。
关于选择
通常Windows系统下php和apache组合,以isapi的方式运行,而linux下可以是apche+php,php常常作为apache的模块,而nginx+php时,phpfast cgi的方式,即php-fpm的方式跑。
据说php-fpm这种方式释放了web服务器,使其仅仅处理请求和并发,而php处理则交php-fpm完成,故 nginx+php现在很受青睐,没测过!
src又是什么意思呢
即下载php后解压后即可,无需安装。倒是需要安装其他组件如 Apache 和 Mysql 。
格式msi呢?
MSI就是microsoft installer的简写,是微软格式的安装包。一般是程序的安装软件。XP下可以直接运行安装,98下需要一个InstMsi的程序才能运行MSI文件。MSI文件的功能其实就是OFFICE软件的安装程序,可以安装,也可以修复或删除。
还有x86指的是32位,x64指的是63位。
总结:如果是win系统服务器,选择php时建议选择nts(Non Thread Safe)版本的其他按照系统来选择,如php7.1中的这个VC14 x64 Non Thread Safe适合于64位的Windows操作系统使用,而VC14 x64 Thread Safe 则适合64位的Linux系统使用。在安装不同版本的php时您可能已经注意到了那个不一样的VC,意思就是您需要额外再安装对应的VC运行库(如果是win系统),比如本处的VC14指的就是您还需要安装Microsoft Visual C++ 2013 Redistributable Package这个东西
微软官方下载地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=48145