我在Windows 7上运行IIS 7.
我已经通过WebMatrix安装了PHP v5.3,在IIS中为我的PHP应用程序设置了一个网站,并为该目录启用了“Everyone”的读/写访问权限。
当我浏览应用程序时,出现以下错误:
HTTP Error 500.0 - Internal Server Error
<handler> scriptProcessor could not be found in <fastCGI> application configuration
Error Code 0x80070585
这是我试过的:
确保已安装CGI(Windows功能 - &gt; Internet信息服务 - &gt;万维网服务 - &gt;应用程序开发功能 - &gt; CGI;已经勾选。)
在'php.ini'的'[ExtensionList]'部分下注释掉所有扩展名。
在网上注意到有关editing a file called 'fcgiext.ini'的一些讨论。在我的硬盘上搜索了这个文件; 0结果。
注意到this discussion,建议处理程序部分的scriptProcessor属性中的任何内容也应该在fastCgi部分中。但是我的PHP应用程序路径中已经有一个名为“Web.roleconfig”的文件,该文件已经有一个fastCgi部分:
<fastCgi>
<application fullPath="%RoleRoot%\approot\Php\php-cgi.exe" arguments="-c %RoleRoot%\approot\Php\php.ini" />
</fastCgi>
对不起,如果这有点不连贯。我不是PHP专家,我不知道从哪里开始解决这个问题。
至少,关于这是IIS还是PHP或FastCgi问题的任何提示都将是一个很大的帮助。
答案 0 :(得分:2)
我尝试使用PHP Manager来查看是否为IIS正确配置了PHP。
从这里安装PHP Manager,http://phpmanager.codeplex.com/
然后在IIS中运行它(在IIS Mgr中显示为模块)以查看PHP是否已注册。如果不是,请单击注册新版本,导航到php-cgi.exe并选择它。然后单击Check PHPInfo()以确保它正在运行。
希望有所帮助。 标记
答案 1 :(得分:0)
上面提出的所有解决方案都基于工具。没有详细提到FastCGI支持的底层IIS机制,但这是使事情正确的关键。
这篇IIS.net文章列出了更多信息,但未提及最后一步,
虽然这个PHP页面几乎可以显示所有屏幕截图,
https://secure.php.net/manual/en/install.windows.iis7.php
如果你得到500.0和0x80070585,很可能最后两步没有完成,你需要回到IIS配置。
答案 2 :(得分:0)
您需要在处理程序定义中包含(快速)CGI应用程序的参数。
不幸的是,这是add handler documentation中描述的 not ,但只是在示例文档(1,2)中出现,关于使用IIS设置PHP:
要创建这些映射,必须将元素的fullPath和arguments属性中的设置添加到FastCGI进程的映射中的scriptProcessor属性,并用管道“|”分隔。字符。
因此,在您的特定情况下,处理程序定义中的scriptProcessor
需要设置为:
<handlers>
...
<add ... scriptProcessor="%RoleRoot%\approot\Php\php-cgi.exe|-c %RoleRoot%\approot\Php\php.ini" />
...
(尚未检查环境变量是否不会导致映射问题。)