浅谈php的TS和NTS的区别

yizhihongxing

浅谈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技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • PHP实现Unicode编码相互转换的方法示例

    下面是关于“ PHP实现Unicode编码相互转换的方法示例”的完整攻略。 什么是Unicode编码 Unicode是国际标准化组织提出的一种针对各种文字和符号的编码标准,它将世界上的所有语言的文字和符号都纳入了编码规范中,并予以了统一编号,它可以让文本在各种环境中正确地呈现。其中,“编码”指的是将各种文字和符号与对应的编号相对应的这个过程,而“解码”则是将…

    PHP 2023年5月26日
    00
  • PHP 数组黑名单/白名单实例代码详解

    关于“PHP 数组黑名单/白名单实例代码详解”,我会进行以下几个方面的讲解: 简要介绍黑名单/白名单 详细阐述黑名单/白名单的实现代码 附带两个示例说明 1. 简要介绍黑名单/白名单 在编写程序时,我们经常需要对用户输入的数据进行过滤,以防止潜在的安全漏洞。其中,一种比较常用的做法是采用黑名单/白名单的方式进行过滤。 所谓黑名单/白名单,就是对用户输入的数据…

    PHP 2023年5月23日
    00
  • PHP函数shuffle()取数组若干个随机元素的方法分析

    PHP函数shuffle取数组若干个随机元素的方法分析 shuffle函数简介 shuffle函数是PHP的数组函数之一,用于随机打乱数组元素的顺序。其使用方法为: shuffle($array); 其中,$array为要进行乱序的数组。 取数组若干个随机元素的方法 对于一个已经打乱顺序的数组,我们可以通过PHP的数组截取函数array_slice来获取若干…

    PHP 2023年5月26日
    00
  • PHP substr()函数参数解释及用法讲解

    PHP substr()函数参数解释及用法讲解 substr()函数介绍 substr()函数是PHP中用于截取字符串的函数。该函数的作用是截取一个字符串中的一部分,并返回截取后的结果。substr()函数的语法如下: substr(string $string, int $start, int $length = ?): string substr()函数…

    PHP 2023年5月26日
    00
  • php使用str_replace替换多维数组的实现方法分析

    PHP使用str_replace替换多维数组的实现方法分析 在PHP中,使用str_replace()函数可以方便地进行字符串替换操作。但是该函数只能对单个字符串进行操作,对于多维数组的替换操作,我们需要进行额外的处理。 下面是实现多维数组替换的几种方法: 方法一:递归函数实现 使用递归函数可以方便地实现对多维数组的替换操作。具体的做法是,对于一个数组,如果…

    PHP 2023年5月26日
    00
  • PHP无限分类代码,支持数组格式化、直接输出菜单两种方式

    PHP无限分类可以通过递归的方式,处理多层级分类数据,实现扁平化的存储和展示。本文将介绍两种方式:支持数组格式化和直接输出菜单,详细解释其使用方法和示例应用。 支持数组格式化的PHP无限分类代码 实现思路 通过递归方法,处理多层级数组中每个元素的子元素,最终返回格式化后的结果数组。 递归方法会输入两个参数:原始数组和当前分类ID(默认为0,表示根分类)。 对…

    PHP 2023年5月26日
    00
  • 微信小程序如何获取用户手机号

    微信小程序可以使用手机号作为用户的唯一标识,可以通过微信提供的API获取用户的手机号,具体操作步骤如下: 1. 开启微信用户手机号授权 在小程序的app.json文件中,设置如下选项,表示开启用户手机号授权功能: { "permission": { "scope.userLocation": { "desc&…

    PHP 2023年5月23日
    00
  • 微信小程序中post方法与get方法的封装

    关于微信小程序中post方法与get方法的封装,可以分为以下几步: 1. 封装request函数 在utils目录下创建一个request.js文件,并在其中封装request函数,该函数接收4个参数: url:请求地址; data:请求参数; method:请求方式,支持GET和POST; success:请求成功后的回调函数。 函数内部调用wx.requ…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部