IIS 7.5/8.0配置PHP出现500.21错误的解决办法

1

最近被软工虐的蛋疼,尤其是测试环境什么的。我们组定下来说用的是ThinkPHP 3.1.2作为开发框架,这倒不要紧,问题是这货要求PHP版本5.3及以上!这意味着啥?手头的两台服务器当时全都配的是PHP5.2,搞升级到是没什么关系,问题是现在都有网站运行在上面,万一升级过程中出点什么问题那就蛋碎一地了。所以没办法,只能用自己的电脑来做测试环境了。

本来说在Windows下面有一个非常非常好用的东西叫做Web Platform Installer,这货附带俩神器,一个叫IIS Express,另一个叫WebMatrix。这本来是挺好的,但问题出现了,IIS Express貌似对80端口有“避讳”,不管怎么折腾始终不能把站点设置到80端口上;其次是IIS Express这坑爹货必须要求配合WebMatrix一起运行,它自己独立运行不了!这下好了,为了测试个站点我还得开俩程序(虽然IIS Express自己是挺安静的),尤其是WebMatrix,偶尔玩玩还行,稍稍弄点黑暗的代码上去一跑,立马现原形了——内存杀手!内存占用轻轻松松上200,这你让我情何以堪!所以,没办法,老老实实换回IIS(毕竟这是专业的啊~)。

好了,说回IIS。用IIS 8.0内置的Web平台安装程序(微软从IIS 7.5开始内建的一个好东西,不过……你的名字怎么好像就是Web Platform Installer翻译过来啊)安装了PHP5.3,然后再浏览器里一运行,就出现了HTTP 500.21(如下图)……

IIS_500_21

当然了,微软最大的一个优点就是它给出的错误提示永远都是非常非常详尽的。这个错误它提示说

处理程序“PHP53_via_FastCGI1”在其模块列表中有一个错误模块“FastCgiModule”

并且

更多信息:

IIS 内核不能识别此模块。

好了,问题到这里大致上就解决了。有PHP这个程序叫PHP53_via_FastCGI1,但是它的模块列表里有一个错误的模块FastCgiModule。这怎么可能呢,FastCgiModule这货可是微软亲生的,怎么可能会说IIS内核不能识别此模块呢?答案很简单:这个模块没有被安装!既然都没有安装,那怎么识别?就像函数没有被定义,怎么去调用它!

解决方法:

1.打开“程序和功能”,然后打开“启用或关闭Windows功能”。

2.找到“Internet 信息服务”,展开找到“万维网服务”,展开找到“应用程序开发功能”,展开找到“CGI”并勾上,然后“确定”,等待完毕之后就好了,然后重启一下IIS,搞定!

IIS_PHP

Comments

您的电子邮箱地址不会被公开。 必填项已用*标注