标签: PHP

  • IIS配置PHP选择版本有讲究

    Windows下的PHP版本分两种:线程安全版本与非线程安全版本。

    如果你打算使用IIS,则你可以以ISAPI或FastCGI这两种方式来安装PHP。CGI的方式因为效率低下,故不予考虑。

    如果你要在IIS中以FastCGI方式使用PHP,则你应该使用PHP的非线程安全的版本(Non-Thread Safe,NTS)。原因是以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。

    如果你要在IIS中以ISAPI的方式使用PHP,则你应该使用PHP的线程安全版本(Thread Safe,TS)。原因是PHP以ISAPI方式安装时,PHP没有独立的进程,而是作为DLL被IIS加载运行的,即是依附于Web服务器进程的。当Web服务器运行在多线程模式下(IIS正是这种情况),PHP自然也就运行在多线程模式下。只要是在多线程模式下运行,就可能存在线程安全问题,因此应选择PHP的线程安全版本。

  • Windows2003环境下 IIS6.0 + FastCGI + PHP5.3.3 + Oracle + Gzip 详细配置

    Windows2003环境下 IIS6.0 + FastCGI + PHP5.3.3 + Oracle + Gzip 详细配置

    IIS6.0安装:记得更新 windows service pack 2 补丁,否则有可能安装不成功。
    IIS6.0安装所需全部文件见i386文件夹。
    安装后记得在网站的“属性”=》“文档”中=》“启用默认内容文档”添加index.php

    —————————————————————————–
    PHP5.3.3:php-5.3.22-nts-Win32-VC9-x86.msi
    地址:http://windows.php.net/downloads/releases/php-5.3.22-nts-Win32-VC9-x86.zip

    注释:关于PHP5.3的版本选择
    一、如何选择PHP5.3的VC9版本和VC6版本
    VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。
    VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。
    二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本
    先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,
    以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。
    Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
    再来看PHP的两种执行方式:ISAPI和FastCGI。
    ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,
    所以需要进行线 程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
    而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,
    所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
    我们使用IIS+FastCGI方式配置服务器环境,所以使用Non Thread Safe版本。

    —————————————————————————–
    下面开始我们的IIS6.0 + FastCGI + PHP5.3的配置过程

    第一步:安装配置IIS6.0的FastCGI模块

    1、安装FastCGI
    FastCGI Extension 文件的名称和下载地址为:
    文件名:FastCGI Extension 1.5 for IIS 6.0 and IIS 5.1 – RC (x86)
    地址:http://www.iis.net/downloads/default.aspx?tabid=34&i=1877&g=6

    2、下面在IIS服务里面进行配置,在IIS里右击“网站”节点,然后单击属性,弹出属性对话框。
    单击“主目录”选项卡,然后单击“配置”按钮,单击添加,添加一个新的ISAPI项
    可执行文件:在C:windowsystem32inetsrv目录下,选中fcgiext.dll
    扩展名:php
    点击“确定”

    3、在C:windowssystem32inetsrv文件夹中,找到fcgiext.ini文件,并打开
    在fcgiext.ini文件底部添加如下配置信息:
    [Types]
    php = PHP
    [PHP]
    ExePath=D:phpphp-cgi.exe
    //注释:以上D:php为php的安装路径,在第二步会提到。

    至此,FastCGIA安装配置完成

    —————————————————————————–
    第二步:安装配置PHP5.3
    下载目前为止最新版的PHP5.3.3
    我下载的是msi安装文件,在安装的时候选择IIS FastCGI即可,安装到D:php即可,比较简单。
    一般安装好以后,相关配置都已经默认设置好,如果需要个性化定制,则建议下载zip文件。

    以下介绍手工配置PHP,所以选择下载zip文件:php-5.3.3-nts-Win32-VC9-x86.zip。
    1、解压php-5.3.2-nts-Win32-VC9-x86.zip至安装目录,这里是D:php
    2、打开D:php,建立php.ini文件:复制一个新的php.ini-development文件,并将文件名改为phi.ini。
    3、打开php.ini文件,修改extension_dir的值
    extension_dir = “D:phpext”
    4、修改时区设置
    date.timezone = Asia/Shanghai
    5、选择启用模块:将用到的模块前的;去掉,注意启用php_exif.dll时,必需将其放在mbstring后面,
    即将php_exif.dll剪切到 php_mbstring.dll后面。
    6、配置FastCGI模式时,将cgi.force_redirect设置为0,
    将cgi.rfc2616_headers 和 fastcgi.impersonate设置为1。
    至此,php部分配置完毕。下面我们来在IIS里添加对php的支持,当然,我们采用的FastCGI方式。

    ———————————————————————————
    第三步:oracle 数据库配置
    安装oracle客户端
    **记得在系统变量中path添加c:Ora10InstantClient

    ———————————————————————————
    ///如果不需要支持gzip,可以省略第四步
    第四步:在 IIS上启用Gzip压缩
    1、 启用GZip第一步:右击“网站”,然后单击“属性”,单击“服务”选项卡,
    选中HTTP压缩的两项“压缩应用程序文件”和“压缩静态文件”,然后单击“确定”。
    2、 右击IIS下面的Web服务扩展节点,再单击“添加一个新的Web服务扩展”,
    添加扩展名为“HTTP Compression”的扩展,
    注意gzip.dll所在的目录为:C:windowssystem32inetsrvgzip.dll
    在IIS的Web服务扩展里,选中HTTP Compression,然后在左侧单击允许。
    3、设置Gzip参数
    设置Gzip需要手工修改C:windowssystem32inetsrv目录下的MetaBase.xml文件,
    MetaBase.xml对于 IIS的运行非常重要,若被破坏轻则IIS不能正常运行,
    重则可导致重装系统,所以修改这个文件之前一定要做好备份,
    下图中名为 MetaBase_backup.xml的文件就是一个备份。
    一般情况下修改MetaBase.xml文件需要关闭IIS服务
    下面设置deflate及gzip的具体参数:
    设置deflate的压缩参数,其中主要包括文件扩展名,脚本文件扩展名,压缩比例,
    需要说明的是,这里压缩比例推荐设置为1
    设置deflate、gzip压缩参数
    HcDynamicComperssionLevel = “1”
    配置完成后,启动IIS,使设置生效
    4、如果不想停止IIS而直接编辑MetaBase.xml文件,则按下图设置:
    在若编辑MetaBase.xml里不想停止IIS,则在IIS节点上,注意是IIS,不是网站,
    在IIS上右击,单击“属性”
    选中“允许直接编辑配置数据库”这一项,可不停止IIS编辑MetaBase.xml文件
    5、检测Gzip压缩是否启用
    如果大家的网站发布在Internet上,可以使用许多在线检测工具,很多站长网站上都有提供,
    如何网站是在自己的电脑上试验,要检测Gzip启用情况, 需要一些能够抓取HTTP头信息的软件,
    这里推荐使用HttpAnalyzer V4,下载这个软件后,则可清晰的看到Gzip的作用。
    ———————————————————————————

    最后记得在命令行中执行iisreset重启IIS服务