技术与艺术
首页研究院技术与艺术编程代码
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