`
jie66989
  • 浏览: 250745 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

PHP各个版本区别

    博客分类:
  • php
php 
阅读更多
原文地址:http://www.cnblogs.com/whoknows/articles/2425841.html

PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别 最近发现很多PHP程序员对
PHP版本知识了解不是很清楚,自己也看了不少类似的文章,还是感觉不够明确和全面,网上的结论又都是模棱两可,在此,给出最完整甚至武断的解释。

    本文讲解:VC6与VC9,Thread Safety与None-Thread Safe,Apache module与fastcgi的区别与选择。

PHP的大版本主要分三支:PHP4/PHP5/PHP6
  其中,PHP4由于太古老、对OO支持不力已基本被淘汰,请无视PHP4。

  PHP6由于基本没有生产线上的应用,还基本只是一款概念产品,很多功能已在PHP5.3.3上实现,所以也不详述,请无视PHP6。

  PHP5的版本主要分四支:PHP5.2之前的版本、PHP5.2.X、PHP5.3和日前发布的PHP5.4。

那我们应该如何选择适用自己项目的版本呢?
    PHP5.2之前的版本不值得考虑,因为某些功能缺陷或者BUG,PHP5.2之前的版本。PHP5.4还处于Beta试用的版本号,非稳定版本,请无视PHP5.4。

  主流PHP程序对PHP5.2.X的兼容性最好,而每次版本号的升级带来的都是安全性和稳定性的改善,所以宜挑选最新的版本。目前PHP5.2系列最新的是PHP5.2.17。

  而如果产品是自己开发自己使用,PHP5.3在某些方面更具优势,在稳定性上更胜一筹,增加了很多PHP5.2所不具有的功能,比如内置php-fpm、更完善的垃圾回收算法、命名空间的引入、sqlite3的支持等等,是部署项目值得考虑的版本,强烈推荐PHP5.3.3。

  除了版本号的不同,同一版本号的PHP版本也有区别,并且在选择PHP扩展的时候需要注意。

•install版:可执行的MSI格式安装包。
•ZIP版:解压即可用。和install版无区别。建议选择ZIP版。
•DEBUG版:请无视。
VC6与VC9
   对于VC6还是VC9版本的选择,PHP官方网站有详细的描述,原文如下:

Which version do I choose?

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
If you are using PHP with IIS you should use the VC9 versions of PHP
VC6 Versions are compiled with the legacy Visual Studio 6 compiler
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed
Do NOT use VC9 version with apache.org binaries我该选择哪个版本?

如果你在apache1或者apache2下使用PHP,你应该选择VC6的版本
如果你在IIS下使用PHP应该选择VC9的版本
VC6的版本使用visual studio6编译
VC9使用Visual Studio 2008编译,并且改进了性能和稳定性。VC9版本的PHP需要你安装Microsoft 2008 C++ Runtime
不要在apache下使用VC9的版本TS和NTS
TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。

NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

  从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把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,非线程安全)的版本能够更好的提高效率。

如何查看当前运行的PHP的版本?一个很简单的办法就是phpinfo();
Thread Safety disabled是NTS,enabled是TS

Configure Command看到VC98字样的是VC6,Compiler标明 MSVC9 (Visual C++ 2008) 的是VC9

在WIN7下:IIS7+NTS+FastCGI+vc9 是最佳搭档或者apache+fastcgi+nts+vc6。

在WINXP下:Apache+TS+Apache module +vc6最合适的搭档。

http://down.chinaz.com/server/201111/1329_1.htm

分享到:
评论

相关推荐

    alpine-php:适用于5.6、7、7.1、7.2、7.3、7.4和8.0PHP Docker容器中的Alpine

    高山PHP 存储库 基于Alpine的最小PHP Docker映像。 包含用于开发环境的标签,并适用于和等各种框架。 文献资料 图片 用法: docker run -d --name dev -p 2323:22 -v $PWD :/app jorge07/alpine-php:8.0-dev ...

    [php框架]非官方_Kohana_3_中文译本.zip

    我该使用哪个版本的 Kohana? 通常来说,很大程度上你应该以自己如何开发作为选择什么版本 Kohana的根本。诸如你如何使用框架以 及你曾经使用 Kohana和PH的经验 从哪个框架运行更快,更安全或者更稳定的立场米看,它们并...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:ASP,mod_perl,JSP 我当然不清楚ASP/JSP能做些什么。不过明确的是...

    解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思

    PHP现在推出5.3.0版本了,...那我们如何选择下载哪个版本的PHP呢?如果你是在windows下使用Apache+PHP的,请选择VC6版本;如果你是在windows下使用IIS+PHP的,请选择VC9版本; 那Non Thread Safe是什么?Non Thread Saf

    php ImageMagick windows下安装教程

    现在的静态版本能够很好的在各个平台上运行,但是他们却很难懂,因此您应该下载一个动态的版本。如果你的系统/电脑支持16位色,那么你应该使用Q16版本(还有一个是8位的版本),这两者的区别我们将会在下面解释。 对...

    知道系统插件 for PHP168.rar

    4. 修改以前版本页面板块显示控制功能 5. 全面提升搜索功能   提问功能:   1. 提问更人性化,在提问前预先搜索相关问题,避免同类问题反复出现; 2. 优化提问时候选择分类的可操作性; 3. 自动从标题...

    Delphi-2010-to-XE6 全面评测比较

    http://blogs.riversoftavg.com/index.php/2014/05/12/performance - comparison - from - delphi - 2010 - to - delphi - xe6 - introduction/ It has been lightly edited for clarity and continuity.

    PHP中new static()与new self()的比较

     2)php 5.2及以下的版本不支持 new static()的语法 简单通俗的来说, self就是写在哪个类里面, 实际调用的就是这个类.所谓的后期静态绑定, static代表使用的这个类, 就是你在父类里写的static, 然后通过子类直接/...

    【二手车交易网站】PHP千博地方多商户二手汽车在线交易网站商城系统

    千博二手车网站体系遵照多阅读器、高速率的 W3C 尺度焦点思惟,以只管即便防止在各个阅读器中的差同性,不会由于阅读器的差别而体系功效遭到限定。千博二手车网站体系流利的设计不只晋升用户体验,并且以视觉的美感...

    精仿微信举报投诉2.0.2.rar

    这套投诉举报系统跟微信公众号的投诉系统界面完全一模一样,用户无法区别哪个是真的,哪个是假的 已实现 7 投诉举报按钮可以漂浮到页面的任何一个地方,并且可以设置诱明度 已实现 8 后台可以查看投诉来源IP,可以...

    PHPOK企业网站-PHP

    PHPOK系统(下述简称OK系统)是由深圳锟铻科技有限公司(前身是PHPOK工作室)开发的一套针对网站建设的内容管理系统,采用 PHP 语言编写,默认使用 MySQL 数据库存储,基于 LGPL 开源协议授权发布到网上共享使用。...

    高薪程序员必备刷题软件-mysql_doc:mysql_doc

    高薪程序员必备刷题软件 title date tags categories mysql 2021-01-11 02:27:41 -0800 数据库 ...第1章:mysql数据库的介绍 ...mysql是一个开源的关系型...**简介:各个版本的区别** 官网:https://dev.mysql.com/downloads

    数据库原理(第5版)

    学生将学习数据库及其应用程序的用途、数据库相对于电子表格列表的差别和优势。第2章介绍了关系模型,定义了基本的关系术语,还介绍了规范化原则的基本概念,并描述了规范化过程。 第3章讲述了基本的SQL语句,介绍了...

    广告经理插件for pw7 pw7.3 pw7.3.2适用于需要自定义广告赚更多M的站长

    适用版本:phpwind7.0 phpwind7.3 插件说明: 辅助论坛站长对站点广告的管理,可将广告外包给指定的会员或相关会员组来操作,提供前台接口无须登陆后台。提供扩展接口,可以在站点的任意位置投放广告. 不修改...

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

    这些例子包含了gSOAP中的各个方面。其中,最简单的例子是  one-liners(samples/oneliners)。  5 快速指南  本指南旨在让你快速开始你的gSOAP开发之旅。阅读本节的内容,需要你对SOAP 1.1协议及C/C++语法有大体...

    cndian淘站群版源代码

    目前免费版免费提供给大家,商业版对大家来说也比较熟悉 现在说说站群版本与免费单页版本区别: 1、去除首页友情链接 2、优化各个页面seo 3、增加关键字提供 4、增加采集功能 5、各个后台配置都用变量

    Venus 浏览器 世界上第一款3D浏览器 2010年11月17日发行

    通过移动鼠标,横竖排列整齐的多个页面以滚动方式展现,各页面还可任意放大、缩小,想查看哪个页面时点击放大即可。 “因为多个页面同时呈现,这种直观的浏览方式大大提高了用户浏览的效率。”VisualDomain公司总裁...

    MySQL中文参考手册

    o 4.3 使用MySQL哪个版本 o 4.4 怎样和何时发布更新版本 o 4.5 安装布局 o 4.6 安装MySQL二进制代码分发 + 4.6.1 Linux RPM注意事项 + 4.6.2 构造客户程序 + 4.6.3 系统特定的问题 # 4.6.3.1 Linux 注意事项...

    MYSQL

    3.6.3 登录支持 3.6.4 扩展的登录支持 4 安装 MySQL 4.1 怎样获得MySQL 4.2 MySQL支持的操作系统 4.3 使用MySQL哪个版本 4.4 怎样和何时发布更新版本 4.5 安装布局 4.6 安装...

Global site tag (gtag.js) - Google Analytics