我一直在试图获得运行在IIS 6上的任何types的PHP。我以某种方式设法成功地使用php5isapi.dll文件运行5.1.4版本。 但是,我想升级网站以开始使用内容pipe理系统。 我从来没有挖过CMS,所以我打开易于使用的程序。 我目前正在研究TomatoCMS和ImpressCMS – 但那不是重点。
我从来没有用PHP做过安装,我想我已经熟悉它是如何工作的。 但目前的情况是这样的。 微软的Web Platform Installer 2.0为我安装了FastCGI。 我需要为CMS系统升级到PHP 5.3.1。 所以我下载了Windows安装程序,让它去。
在咨询过其他几篇博客文章之后,我相信我知道应该如何工作,但我目前还没有运气。
设置
* .php是IIS 6中所有网站的注册扩展(在Win 2k3上)。 它调用的应用程序是C:\ Windows \ system32 \ inetsvr \ fcgiext.dll,就像它应该。
fcgiext.iniconfiguration有适当的行:
[types] php = PHP
[PHP] ext = C:\ program files \ PHP \ php-cgi.exe
而php.ini文件也有正确的configuration。 所有的扩展都被禁用了,我改变了FastCGI的正确的东西。 并且所有的东西都用PATHvariables正确注册。 一切都是如何应该的。
但是当我在另一台计算机上启动“info.php”页面()时,出现以下错误:
FastCGI错误FastCGI处理程序无法处理请求。
错误详情:
* Section [PHP] not found in config file. * Error Number: 1413 (0x80070585). * Error Description: Invalid index.
HTTP错误500 – 服务器错误。 Internet信息服务(IIS)
一个快速的谷歌search显示,我已经正确设置了所有的INI的去和PHP扩展的映射。 我完全不知所措。 有没有人有什么build议? 虽然服务器托pipe了三个小网站,但我并不在乎我必须做些什么来实现它。
FCGI和PHP与IIS6在我的服务器上和平共存,我也遇到了麻烦,虽然我有不同的问题。 根据您从fcgiext.ini文件发布的内容,看起来您需要稍微不同的configuration选项,即需要设置ExePath而不是分机。 这是我的生产服务器上的fcgiext.ini文件的一个片段,它承载了几十个站点:
[Types] php:633747741=PHP-TEST php=PHP-Production [PHP-Production] ExePath="C:\Program Files\PHP-5.2.10-nts-vc6\php-cgi.exe" EnvironmentVars=PHPRC:C:\Program Files\PHP-5.2.10-nts-vc6 InstanceMaxRequests=1000 ActivityTimeout=1200 RequestTimeout=1800 MaxInstances=100 [PHP-TEST] ExePath="C:\Program Files\php-5.2.12-nts\php-cgi.exe" EnvironmentVars=PHPRC:C:\Program Files\php-5.2.12-nts InstanceMaxRequests=5 ActivityTimeout=1200 RequestTimeout=1800 MaxInstances=100
我有两种不同的PHP定义configuration(PHP-Production和PHP-TEST),我已经将默认configuration设置为PHP-Production。 我已经为IIS站点编号633747741指定使用configurationPHP-TEST来代替。