zoukankan      html  css  js  c++  java
  • PHP版本中的VC6,VC9,VC11,TS,NTS区别

    以windows为例,看看下载到得php zip的文件名

    php-5.4.4-nts-Win32-VC9-x86.zip


    VC6:legacy Visual Studio 6 compiler,是使用这个编译器编译的。
    VC9:Visual Studio 2008 compiler,就是这个编译器编译的。

    这个其实没有什么太大的影响,因为从php 5.3,已经没有vc6版本提供下载了

    IIS

    如果想使用IIS配置PHP的话,那么需要选择Non-Thread Safe(NTS)版本的PHP

     

    Apache

    如果你是用的Apache的版本来自Apache Lounge(website:http://apachelounge.com/),可以使用PHP VC11 x86或者x64版本。

    如果你使用的是从apache.org下载的Apache1或者Apache2来搭建PHP环境的话,只能使用VC6版本,无法使用VC9+以上版本。

    VC9 VC11

    VC9和VC11是PHP的最新版本(这两个版本分别通过Visual Studio 2008和Visual Studio 2012编译),其中包含了对于性能和稳定性的改进。

    VC9版本要求用户安装Microsoft Visual C++ 2008 SP1 Redistributable Package(x86 | x64

    VC11版本要求用户安装Visual C++ Redistributable for Visual Studio 2012(x86 | x64


    TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查
    NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

    我使用Apache+PHP的模式下,一般是把PHP作为一个Module load到apache中,那么以apache父进程-多子进程的工作模式,是需要进行线程安全检查的,所以如果是以这种方式执行php,选择ts版本

    那么如果是使用fastcgi,比如说用php-fpm管理php执行,则不需要进行线程安全检查,则选择nts版本的php

    ---------------------------------------------------------------------------------------------------------------------------
    php 5.5.0 beta 1发布后, 安装出现问题, 家中电脑升级是成功的, 可公司的电脑一直提示无法加载到服务. 操作系统都一样的, 没什么区别. www.php.net官网左侧的说明提醒了我.

    php-5.5.0beta1-Win32-VC11-x86

    安装包的名字也已经说明了, 要运行必须安装vc11, x86表示32位, 假如是x64就是64位, 位数对于安装vc11有帮助, 个人建议vc11 x86, x64两个版本都安装上比较好, 反正没冲突.

    然后启动服务, 搞定. phpinfo信息如下:

    -----------------------------------------------------------------------------------------------------------------------------

    VC6:legacy Visual Studio 6 compiler,就是使用这个编译器编译的。
    VC9:Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。
    由于apache.org只提供VC6的版本,所以使用原版apache时只能使用VC6。(www.apachelounge.com上有apache VC9的版本提供,应该可以和PHP VC9配合,没用过)
    TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源
    NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查
    PHP的两种执行方式:ISAPI和FastCGI。
    ISAPI(Internet Server Application Programming Interface)执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这 样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本
    apache中的配置方式:

    #下面这个是加载TS版本的php必须的
    LoadModule php5_module “xxx/php5apache2_2.dll”
    #下面这行可有可无

    AddType application/x-httpd-php-source .phps
    AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt


    FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
    apache中的配置方式:

    #下面这两行是加载NTS版本的php必须的,不可以直接写成Action application/x-httpd-php “c:/wamp/bin/php/php3.5.6/php-cgi.exe”!
    ScriptAlias /php/ "C:/wamp/bin/php/php3.5.6/"
    Action application/x-httpd-php “/php/php-cgi.exe”

    #另外,还要有之前的AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt,这样才能认识php格式的文件

    #这样配置完可能还会因为权限问题而无法用php-cgi.exe解析php网页,所以还要加上下面这段

    <Directory "C:/wamp/bin/php/php5.3.6/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
    官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。
    XAMPP在http-xampp.conf中默认配置是使用ISAPI的方式

    转载:http://www.cnblogs.com/codersay/p/4301783.html?utm_source=tuicool
     
  • 相关阅读:
    web前端(4)—— 常用标签1
    web前端(3)—— html标签及web页面结构
    web前端(2)—— 前端技术介绍
    web前端(1)——了解什么是前端,以及与后端的关系
    数据库之redis篇(2)—— redis配置文件,常用命令,性能测试工具
    数据库之redis篇(1)—— redis数据库安装,简单使用
    数据库之mysql篇(6)—— mysql常用函数函数/自定义函数
    洗礼灵魂,修炼python(91)-- 知识拾遗篇 —— pymysql模块之python操作mysql增删改查
    LINUX新建和增加SWAP分区
    Configuring SSL for SAP Host Agent on UNIX
  • 原文地址:https://www.cnblogs.com/wawahaha/p/4820433.html
Copyright © 2011-2022 走看看