为什么我在 IIS 7 上运行 PHP 应用程序时收到错误 0x80070585?

问题描述 投票:0回答:3

我在 Windows 7 上运行 IIS 7。

我已经通过 WebMatrix 安装了 PHP v5.3,在 IIS 中为我的 PHP 应用程序设置了一个网站,并为目录启用了“每个人”的读/写访问权限。

当我浏览到该应用程序时,出现以下错误:

HTTP Error 500.0 - Internal Server Error
<handler> scriptProcessor could not be found in <fastCGI> application configuration
Error Code  0x80070585

这是我尝试过的:

  • 确保已安装 CGI(Windows 功能 --> Internet 信息服务 --> 万维网服务 --> 应用程序开发功能 --> CGI;已勾选。)

  • 注释掉了“php.ini”中“[ExtensionList]”部分下的所有扩展。

  • 注意到网上一些关于编辑名为“fcgiext.ini”的文件的讨论。在我的硬盘上进行文件搜索以查找该文件; 0 个结果。

  • 注意到此讨论,建议处理程序部分的 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 问题的提示都会有很大帮助。

php iis-7 fastcgi
3个回答
2
投票

我会尝试使用 PHP 管理器来查看 PHP 是否已针对 IIS 正确配置。

从这里安装 PHP 管理器,http://phpmanager.codeplex.com/

然后在 IIS 中运行它(在 IIS Mgr 中显示为模块)以查看 PHP 是否已注册。如果不是,请单击“注册新版本”,导航到 php-cgi.exe 并选择它。然后单击“检查 PHPInfo()”以确保其正在运行。

希望有帮助。 马克


2
投票

上面提出的所有解决方案都是基于工具的。没有详细提及 FastCGI 支持的底层 IIS 机制,但这是做好事情的关键。

  1. Windows 的 PHP 二进制文件必须提取到某个地方,并且您需要准备好它的 php.ini。
  2. 在服务器或站点级别的 IIS 管理器的处理程序映射部分(或等效的 applicationHost.config 文件中)添加模块映射。
  3. 确保在 IIS 管理器的服务器级别 FastCGI 设置部分注册了 php-cgi.exe(尽管在上一步中 IIS 管理器应该询问您是否希望它帮助自动添加此条目)。

这篇 IIS.net 文章列出了更多信息,但没有提及最后一步,

https://www.iis.net/learn/application-frameworks/scenario-build-a-php-website-on-iis/configuring-step-1-install-iis-and-php

虽然这个 PHP 页面通过屏幕截图显示了几乎所有内容,

https://secure.php.net/manual/en/install.windows.iis7.php

如果得到500.0和0x80070585,很可能是最后两步没有完成,需要回到IIS配置。


0
投票

您需要在处理程序定义中包含(快速)CGI 应用程序的参数。

不幸的是,这没有添加处理程序文档中描述,而只是出现在有关使用 IIS 设置 PHP 的示例文档(12)中:

要创建这些映射,必须将元素的 fullPath 和参数属性中的设置添加到 FastCGI 进程映射中的 scriptProcessor 属性中,并用管道“|”分隔性格。

因此,在您的特定情况下,处理程序定义中的

scriptProcessor
需要设置为:

<handlers>
  ...
  <add ... scriptProcessor="%RoleRoot%\approot\Php\php-cgi.exe|-c %RoleRoot%\approot\Php\php.ini" />
  ...

(不过,尚未检查环境变量是否不会导致映射问题。)

© www.soinside.com 2019 - 2024. All rights reserved.