当前位置: 首页 > 后端技术 > PHP

PHP安装包TS和NTS的区别

时间:2023-03-29 19:33:40 PHP

TS指的是ThreadSafety,即线程安全。一般在ISAPI模式加载IIS时选择这个版本。NTS是非线程安全的。一般以fastcgi模式运行时选择该版本,性能较好。具体来说:2000年10月20日发布的第一个Windows版本的PHP3.0.17是线程安全的版本。这是因为Windows系统不同于使用多进程工作的Linux/Unix系统。使用多线程工作。如果在IIS下以CGI方式运行PHP,会很慢。这是因为CGI模式是基于多进程的,而不是多线程的。一般我们会配置PHP运行在ISAPI模式下,而ISAPI是多线程模式,速度会快很多。但有一个问题。许多常用的PHP扩展都是利用Linux/Unix的多进程思想开发的。当这些扩展程序以ISAPI模式运行时,它们会出错并导致IIS崩溃。因此,CGI模式是PHP在IIS下运行最安全的方式,但CGI模式需要为每个HTTP请求重新加载和卸载整个PHP环境,其消耗巨大。为了兼顾IIS下PHP的效率和安全性,微软给出了FastCGI方案。FastCGI允许PHP进程重用,而不是为每个新请求重新启动一个进程。同时,FastCGI还可以让多个进程同时执行。这样既解决了CGI进程模式消耗过多的问题,又利用了CGI进程模式没有线程安全问题的优势。因此:如果使用ISAPI运行PHP,必须使用ThreadSafe(线程安全)版本;而如果以FastCGI模式运行PHP,则无需使用线程安全检查,使用NoneThreadSafe(NTS,非线程安全)版本可以更好的提高效率。