首页研究院技术与艺术编程代码

PHP全线产品升级至5.3、5.4流程(PHP5.3在IIS上的配置)

发布单位:索蓝时 发布时间:2011年5月24日 浏览次数:1240
声明:
1、为保护客户商业秘密或知识产权,部分文字、图片、声音、视频已经过处理,并非真实外观;
2、未经本公司许可,禁止以一切形式转载、摘编、复制本站的资源,本公司将追究违反上述声明者相关法律责任。

索蓝时公司经过一段时间的摸索,针对PHP升级制定如下规则和要求:

1、下载最新或最稳定的php版本:

    地址:http://windows.php.net/download/

    因为最终以fastcgi模式配置,因此下载“VC9 x86 Non Thread Safe”的非线程安全zip文件。

2、下载zend最新的加密解密加速产品

    地址:http://www.zend.com/en/products/guard/downloads

    因为已经为php5.3版本,因此只下载加密产品“Zend Guard”和解密加速产品“Zend Guard Loader”

3、如果服务器为iis6,则还需安装以下产品

    让iis6支持fastcgi,地址:http://www.iis.net/download/FastCGI

    让老系统支持fastcgi,Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn

4、安装基础软件

    首先安装第三步中下载的软件,windows7、windows2008不需此步。

5、配置php.ini

    a)extension_dir = "E:\local\php5.3\ext"

    b)date.timezone = Asia/Shanghai

  c)根据情况激活扩展

         extension=php_curl.dll
         extension=php_gd2.dll
         extension=php_mbstring.dll
         extension=php_mysql.dll
         extension=php_mysqli.dll
         extension=php_pdo_mysql.dll
         extension=php_xmlrpc.dll

  d)设置文件夹权限,往往文件夹设置不正确,导致php出错。

        iis6设置中需要安装fastcgi,但要正常运行fcgiext.dll所在文件夹的权限必须正常,目前遇到有些服务器将inetsrv文件夹的users用户组给屏蔽了,导致iis读不到fcgiext.dll出错,因此整个路径中所有文件夹的属性都必须一致。

       另, 目前来看此部分配置后减少一批错误:

        session.save_path = "d:\php_tmp"

  e)很多人提及需要如下配置,但也有一部分人并不开启,根据情况决定

         fastcgi.impersonate=1 默认为0,如果使用IIS,你需要开启
         cgi.fix_pathinfo=1

         cgi.force_redirect=0 默认开启,如果你使用IIS,可以将其关闭

    f)php5.4在windows7(可能其它操作系统也同样出现)无法正常使用,必须将php.dll复制到windows/system32下,重启操作系统(非iis)后方可正常使用

6、iis中配置

    a)在iis7中配置比较简单,选择服务器-〉处理程序映射-〉添加模块映射-〉设置内容-〉重启服务器,如下图:


   

    b)在IIS6中需要如下准备工作及配置操作

        第一步,必须安装好第三步中的软件,如果成功应该能在iis的服务扩展中看到“FastCGI Handler”;

        第二步,选择网站-〉主目录-〉配置-〉添加,如下图


        第三步,打开FASTCGI配置文件C:\WINDOWS\system32\inetsrv\fcgiext.ini,在最后[Types]修改为这样的样式
[Types]
php=PHP
[PHP]
ExePath=C:\Php\php-cgi.exe

7、无论iis6或7,都加上默认文档

8、重启一次系统,检查php是否正常运行。由于没有解禁部分非安全功能,phpinfo()函数不可用

9、安装解密组件zend guard loader(目前php5.4暂不支持guard loader)

    将ZendLoader.dll 文件,将它放到你的php目录下ext下,再编辑php.ini文件,添加一段代码(如):
[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="d:\php\ext\ZendLoader.dll"

    结束后重启服务器,测试phpinfo()可查到该组件

=================================

可能遇到的问题汇总:

1、在安装某台64位2008服务器时,死活不执行fastcgi报错,权限等都无误的情况下被安装了Microsoft 2008 C++ Runtime居然解决了,这原本是在IIS6上才要装的,可能用户的服务器安装时漏了什么,因此无法执行。

    安装runtime请下载http://www.microsoft.com/download/en/details.aspx?displayLang=en&id=5582本处sp1版的,否则将会随机在根目录产生一些垃圾文件

参考文档http://www.snans.com/?0100100536.html

=================================

参考文档:

http://www.snans.com/?0100100489.html

http://www.snans.com/?0100100488.html

http://www.snans.com/?0100100536.html

http://www.leapsoul.cn/?p=753

http://www.zendchina.net/?action-viewnews-itemid-2349