浅谈PHP的TS和NTS的区别
TS和NTS的定义
TS
是 Thread Safe 的缩写,表示线程安全,PHP 官方 pre-compiled .dll 扩展都是 Thread Safe 的,TS 版本在 Windows 平台是不需要运行环境的支持,可以直接将生成的 .dll 下载下来放到 PHP Extension 目录中去,然后在 php.ini 中添加扩展就可以使用了。
NTS
则是 Non-Thread Safe 的缩写,表示非线程安全,需要接下来要求运行 PHP 的服务器采用 FastCGI
.
TS和NTS的区别
TS
版本可以直接加载到 PHP 扩展目录中,然后通过 PHP 启动时加载的方式使用; NTS
版本不支持这类操作,需要在 Windows 平台使用等同于 *nix 平台 PHP 加载的方式在运行时动态加载。
示例说明
- 对于 Apache + PHP 的 Windows 版环境,需要使用 Thread Safe 的 PHP 版本,否则会造成应用程序崩溃,或是运行出现各种其它的问题。下面是 PHP 官方网站的一段说明:
For use with Apache Lounge VC14 builds you need to use the Thread Safe VC14 builds of PHP
- 对于配置 PHP-FPM 的 *nix 服务器, 通常使用的是非线程安全版本
NTS
,因为 FPM 子进程间使用的是共享内存。
总结
- 要选择使用 TS 还是 NTS 版本,主要取决于服务器是什么或者要在什么服务器上运行 PHP.
- 在 Windows 平台上使用 PHP,应该尽量使用 TS 版本,只有当可以确定服务器不要求线程安全时,才能将 PHP 的 NTS 版本作为选项。
- 在 *nix 平台上使用 PHP,由于 FPM 子进程使用共享内存,应该选择 NTS 版本的 PHP 。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈php的TS和NTS的区别 - Python技术站