本篇文章小编将带大家了解一下PHP各个版本的区别,感兴趣的朋友可以了解一下,希望能够对你有所帮助。

PHP的版本,自从进入5以后,发布新版本速度明显提升很多,从PHP5.2开始,5.3 、5.4 、5.5,就快要6.0了。

注:ecshop用户请自觉使用php5.2.17版本。呵呵。

在php官网下载php时,我们会发现有vc6、vc9的区别,这是什么意思呢?

VC6是legacy Visual Studio 6 compiler,使用这个版本的编译器编译PHP代码的,使用apache做应用程序服务器,则选择vc6。

VC9是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。使用IIS做应用程序服务器,则选择vc9。

那么,我们注意到,php-5.2.17-nts-Win32-VC6-x86.zip php的解压文件中,有nts和没有nts的区别,这个又是什么意思呢?

这要从php的5.2系列版本说起。从5.2.1版本开始,就有ts和nts的区别,Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)

Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。

从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是因为Linux/Unix系统是采用多进程的工作方式,而Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,因为CGI模式建立在多进程的基础之上,而不是多线程。我们在windows上会把PHP配置成以ISAPI的方式来运行,因为ISAPI是多线程的方式,这样就快多了。

但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错,很可能将IIS进程搞崩溃,因此对于IIS来说,CGI模式才是PHP运行的最安全的方式,只不过CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。

因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

根据不同的webserver,也就是应用程序服务器,在处理应用请求的时候,有些是用多线程而非多进程的方式,那么由于线程会牵扯到共享寄存器和内存方面的,所以很容易出错(考虑c语言指针的情况),那么系统就需要时间和资源来处理寄存器中的数据,保证它们的一致性,也就是保证线程安全了。

所以是否使用Thread Safe(线程安全),主要看web server所采用的PHP请求处理方式,如果是多线程处理如IIS的ISAPI方式,那么请选择线程安全,如果是FastCGI那么选择非线程安全。

最终建议:IIS下,使用ISAPI方式运行PHP,就使用Thread Safe(线程安全)的版本,使用FastCGI方式运行PHP,就使用None Thread Safe(NTS,非线程安全)的版本。

注:php5.2没有vc9,php5.3、php5.4没有vc6。呵呵。PHP5.5开始,不支持xp和win2003了,更是vc11了,呵呵呵呵。

php版本有什么不同,浅谈PHP几个版本的区别相关推荐

  1. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  2. 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解

    浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解 本篇文章小编为大家介绍,Android onTouchEvent 与 onInterceptTo ...

  3. 什么是proxy服务器代理?怎么设置代理服务器?浅谈服务器代理与VPN的区别

    服务器 服务器是计算机的一种,它比普通计算机运行更快.负载更高.价格更贵.服务器在网络中为其它客户机(如PC机.智能手机.ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务.服务器具有高速的C ...

  4. 浅谈android应用之版本特性

    文章目录 1. 前言 2. 版本介绍 2.1 Android 2.2 Froyo 2.2 Android 3.0 Honeycomb 2.3 Android 4.0 Ice Cream Sandwic ...

  5. 浅谈机器学习-回归与分类的区别

    前言 机器学习的主要任务便是聚焦于两个问题:分类和回归.本文将浅谈下两者的区别. 区别 回归会给出一个具体的结果,例如房价的数据,根据位置.周边.配套等等这些维度,给出一个房价的预测.         ...

  6. 浅谈云计算与超融合的区别和联系

    在项目设计阶段遇到了云计算和超融合的实际运用的问题,虽然自己本身不负责设计,但是对于云计算与超融合的区别也不了解,故查了一些资料,由此谈一下自己的理解,内容干干巴巴不瞎扯,不当之处欢迎交流指正. 在谈 ...

  7. python现在版本强势英雄_浅谈S15新赛季即将崛起的英雄,附新版本强势英雄推荐...

    明天是S15新赛季,本人之前在体验服玩过一段时间,对新版本有一定的了解,在这里跟大家分享一下我对于新版本的一些看法,以及认为S15赛季即将崛起的英雄,有什么问题可以在评论区探讨. 1,边射马可强度极高 ...

  8. 浅谈win101809专业工作站版本激活并且获取数字权利的方法

    win10专业工作站版本是win10各个版本中功能最强大的,尤其是更新到1809版本之后,更是强大到没朋友. 工作站模式:微软通过识别CPU和GPU工作量来优化系统让系统达到最高性能 ReFS文件系统 ...

  9. 浅谈php7 引入的“??“和 “?:“的区别

    很多人在代码的编写过程中都会大量使用三目运算,原因无它,只因为这样可以是自己的代码看起来更加简洁高效!!! 不可否认,三目运算确实方便了"你,我,他".而为了使用方便php版本7 ...

最新文章

  1. 员工未回复群消息被罚200元,企业:符合公司规章制度
  2. 在Android中取得当前进程名
  3. DPDK — 扩展私有函数库
  4. 图像平滑处理(归一化块滤波、高斯滤波、中值滤波、双边滤波)
  5. 在SQLSERVER EXPRESS 2005中安装northwind和pubs数据库。
  6. 用【快餐店】理解高并发分布式架构,秒懂!
  7. 派生类类型可以转换为基类类型,反之则不行
  8. 多所高校通知:暂缓返校
  9. Statement returned more than one row, where no more than one was expected
  10. 使用pthread-win32工程编译静态库
  11. 怎样让一个心浮气躁的孩子静下心学习?
  12. 非平衡电桥电阻计算_双臂电桥(QJ44)的功能介绍与使用
  13. JAVA——JVM参数设置规则以及参数含义
  14. Javascript特效:照片墙
  15. 多次字符串相加一定要用StringBuilder而不用 + 吗?
  16. Gitlab代码库自动同步到Github
  17. 五、GNSS测量控制网的建立(1)
  18. 云服务器免费suse系统,suse系统
  19. linux如何进入文件编辑,Linux 文件编辑工具
  20. 美团java面试_2020年美团Java一面,美团面经面试流程面试题整理

热门文章

  1. dep文件 dsp文件 dsw文件
  2. 【视频】零基础neovim搭建Java IDE
  3. 【专题5: 硬件设计】 之 【58.案例四:简易空气净化器,高精度恒压源的设计】
  4. 值得把Office再重做一次
  5. 测试人员求职面试的时候如何谈薪酬待遇
  6. 两张表有不同的字段 可以用union吗
  7. appium ConnectionRefusedError,urllib3.exceptions.NewConnectionError,urllib3.exceptions.MaxRetryError
  8. python实部虚部_以 3 为实部 4 为虚部, Python 复数的表达形式为 ___________ 或 ________ 。_键盘答案_学小易找答案...
  9. Nexus 5刷机无限重启问题解决
  10. 织梦CMS5.7最新织梦有效防挂马清马,织梦漏洞修补全!2019-8-30更新