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

今天遇到一个问题就是客户模板程序要用到 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)管理器

wKiom1Nxw-mRvCinAANr4Qr_hX0668.jpg

wKioL1Nxw8CTW5ErAAIVbQ-7xYw292.jpg

wKiom1Nxw-3je3DaAALv51uLfBo912.jpg

wKiom1Nxw-7hD-EpAAD9XsIZ8-c116.jpg


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

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

<?php

phpinfo():

?>

然后就能测试了。

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

wKioL1NxxRjQcvtBAACmIMywttg682.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=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="你的PHP安装目录\ext\ZendLoader.dll"

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


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

       PHP Extension 20090626

  Zend Extension 220090626

  Zend Extension Build API220090626,TS,VC9

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


http://pan.baidu.com/s/1hqggfaO 这里提供一下我的软件包 , 希望对同蛋疼的朋友有帮助。



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

这是错误代码:

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

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


wKiom1PQ6WyD3owNAAEbl5Wc-gk988.jpg

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

wKioL1PQ6uKiEddlAAGS0F246MQ692.jpg

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