windows升级php,windows下 php由5.2升级 5.4.20的蛋疼过程。。

在IDC 工作大半年了,还没有毕业,刚刚答辩完毕,感觉有蛋疼了,每天面对客户奇葩问题,面对奇葩客户【PS:不是装逼的-.-,只是发现小白客户真可怕】,现在每天处理一些琐碎的事情,感觉人生的经验槽正在慢慢积蓄能量了,不禁一种舒爽的感觉啊~28e9bdaed7d93b3f1acc32506cba056b.png,IDC的大家应该了解点,小问题不会的问百度,问我哥(谷歌),大问题备份数据重装一下下~反正有模板。72c063e9cc723e26686b04497919617b.png

今天遇到一个问题就是客户模板程序要用到 php 5.4版本以上的,客户用的独立服务器,PHP升级速来麻烦的蛋疼【当然这是我以为的,新手小问题自己也不免兴师动众的样子..】,5.2版本的PHP 算是老版本了吧,但是我们这边的IDC很多默认都是安装的这个,然后就要进行各种操作。

这边我就列一下今天进行的步骤,已记录此次操作过程,也为以后查看提供点便捷。。。

1.Php5.4.20

2.Microsoft Visual C++ 2008

3.FastCGI 1.5

安装流程

先解压php-5.4.20-Win32-VC9-x86.zip  或者php-5.4.20-nts-Win32-VC9-x86 【解压到C根目录下php目录下】

安装vcredist_x86.exe

在安装fcgisetup_1.5_rtw_x86_XiaZaiBa.zip

为什么是有两个呢? 他的不同点就是多了 nts 这三个字母,会导致的结果也很不通。

Non Thread Safe就是非线程安全;

Thread Safe 是线程安全;

官方并不建议你将Non Thread Safe 应用于生产环境,但是不使用的话有时会出现一些蛋疼的问题。。。

1.然后需要配置PHP

首先将php目录中的php.ini-development或php.ini-production

php.ini-development 适合开发程式使用(测试用)

php.ini-production 拥有较高的安全性设定,则适合上线当产品使用

打开php.ini修改以下内容

1、找到; extension_dir = ”./”这行,修改为extension_dir = ” D:\php\php5\ext”  (注意去掉前面的“;“)

2、;date.timezone =  修改为date.timezone =”asia/shanghai” (注意去掉前面的“;“引号为英文引号)

3、short_open_tag 设置为On(注意去掉前面的“;“引号为英文引号)

4、extension=php_mbstring.dll(宽字符支持,推荐选中 去掉前面的“;“)

5、extension=php_gd2.dll(PHP的GD库支持,必选 去掉前面的“;“)

6、extension=php_mysqli.dll(去掉前面的“;“)

7、extension=php_mysql.dll(使PHP支持MySQL,必选去掉前面的“;“)

然后保存退出

2.修改fcgiext.ini 文件

打开C:\WINDOWS\system32\inetsrv\fcgiext.ini

在最后添加以下内容

[Types]

php=PHP

[PHP]

ExePath=D:\php\php5\php-cgi.exe  // (这里的路径是你的php解压后的路径)

保存退出

3.打开Internet 信息服务(IIS)管理器

0c82b3fe967fef8e6f53b57a0e04d442.png

20d10d8db7a6238eac279ad34dd8e75f.png

f27d7e583618dbe9917c4d5fdd8e0f0c.png

69f2e5e048b5c9b9252f9bc750827974.png

点击确认,重启IIS  然后就可以用探针测试了。。

探针写法应该都会,这边也提供一下。

phpinfo():

?>

然后就能测试了。

假如说这么顺利的话,也不用写这篇文章了,这是后探针打开应该是正常的,如果是模板程序的话也可以进行安装,但是打开页面会提示

1920f78b1887974527ed4cb2357b14ff.gif

会提示要zend,提示要加载zend,但是我记得5.4的不要zend的啊,然后就搜索,发现是需要Zend Guard Loader 这个组件,需要去官网下载http://www.zend.com/en/products/guard/downloads?platform=Windows,他是一个只有0.06M的东西,是目前市面上最成熟的PHP源码加密产品。

然后下载下来继续进行配置

下载好后解压压缩包,找到目录下的 ZendLoader.dll 文件,将它放到你的php目录下ext下,再编辑php.ini文    件,添加一段代码(如):[Zend.loader]zend_loader.enable=1zend_loader.disable_licensing=1zend_loader.obfuscation_level_support=3zend_loader.license_path=zend_extension="你的PHP安装目录\ext\ZendLoader.dll"

做完这些,默默地重启IIS 然后在测试,打开还是不行仍然提示错误518083753f1f241594998ca4641a11bf.png,错误类型仍然如此。

继续查看网上同样问题的朋友们,发现zend loader 他只能用于 非线程安全 的PHP版本中,也就是说PHP 要重装,而且要装带有 nts的字段的 php 包,什么情况下可以判断呢,在探针中出现

PHP Extension 20090626

Zend Extension 220090626

Zend Extension Build API220090626,TS,VC9

再找一下Thread Safety 选项,如果对应是 enable 就是 ts的 是disenable 就是 nts的,然后在返工重做吧.....b194115ebd021f7fa86a214661e7a966.gif

下面在记录一下其他的错误信息吧,之前一招鲜配置了很多服务器的php升级,但是有的不管怎么配置还是提示fastcgi错误,明明一样的配置步骤啊 有木有很坑爹~但是目前所反馈的问题都是一样的错误编号5,百度都是说用户权限问题,其实另有乾坤。

这是错误代码:

Error Number: 5 (0x80070005).Error Description: ?ü??·??ê?£HTTP Error 500 - Server Error.Internet Information Services (IIS)

看见之后就凌乱了,以前就是这么配置的怎么就不行。。。。。。其实系统个混蛋隐藏了一些内容,完整的报错应该是

69dc4f0c7e4063a767d41e38c4d2c9ad.png

这个错误是什么呢,翻译一下也该知道了,fastcgi不支持对CPU的监视,这个东西是在程序池中设置的,要把它关闭掉,也就是不能开启。

4dd6525eccbaebc3f7645715a5366a2e.png

如果这个开启的话就会明确报错,没有开启的话也会报错,但是不给你指示,这边就开启在关闭,把错误逼出来,然后就好了。再次记一下,给凌乱的小伙伴们!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值