【问题标题】:On Windows 8 and Internet Information Service 8.5 - how to setup PHP?在 Windows 8 和 Internet Information Service 8.5 上 - 如何设置 PHP?
【发布时间】:2014-12-18 16:31:17
【问题描述】:

首先让我说我对 Microsoft 的 Internet 信息服务非常陌生。我需要在我的 PC 上设置 IIS,它还应该执行 PHP 文件。到目前为止,我已经安装并运行了所有东西——最新的 PHP 并启用了 IIS 服务。我只能查看默认网页 (*.html) 文件。它不会执行 PHP 文件。如果我尝试请求任何 PHP 文件,我会收到 403 错误。

我一直在网上研究,似乎对在 IIS 上设置 PHP(扩展)更加困惑。有些网站说你需要通过它的 MANAGER 来配置 PHP。其他人说我需要通过 IIS 管理器添加 Role 和 FastCGImodule。根据微软的说法,我需要将 php.ini-development 重命名为 php.ini 并将 php 指向某个 DLL 文件。

我使用的是 Windows 8、IIS 8.5 和 PHP 5.6。我希望有人能指出我的方向。

【问题讨论】:

  • 你在运行php.iis.net吗?
  • 您正在开发.net 项目吗?否则我会使用wampserver.com/en。 Windows Apache MySql PHP
  • 我们有 IIS7.5 而不是 8.5,但我们使用 Web 平台安装程序,它为我们完成所有基本的 PHP 安装,使用 Fast-CGI 等。您需要在 IIS 管理器中运行 WPI 才能获得正确的包,它们不是最新的,但对我们来说效果很好。
  • @Mark_1 我需要在 IIS 管理器中运行 WPI 是什么意思?我看到你可以从 Internet 上下载 WPI 可执行文件并运行,但是你如何在 IIS 中运行它。
  • 看起来您自己已经解决了这个问题,但只是为了完整性 安装 Web Platform Installer 后,您可以从 Windows 运行它,它会显示适用于 Windows 的选项。但是你需要做的是启动 IIS 管理器,你也会在那里看到 Web Platform Installer,如果你在 IIS 中运行它,你会得到所有适合 IIS 环境的选项(比如你的 PHP 安装)。

标签: php windows iis


【解决方案1】:

您可以手动或使用 IIS 管理器进行设置。我会自己设置,所以你知道发生了什么。

您需要设置 CGI 角色功能。这包括 FastCGI。以下是如何做到这一点的一些信息:http://www.iis.net/configreference/system.webserver/cgi

然后你会在某个地方需要 PHP 包。让我们在 C:\PHP 中说。如果你愿意,你可以改变它。

您将需要 fastCGI 设置。您可以通过命令行轻松设置:

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\php\php-cgi.exe',activityTimeout='1200',requestTimeout='1200',arguments='-c%20C:\php\php.ini']

此示例使用 20 分钟的超时时间。

这将设置处理程序:

%windir%\system32\inetsrv\appcmd set config /section:handlers /+[name='PHP_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='"C:\php\php-cgi.exe|-c%20C:\php\php.ini"',responseBufferLimit='0',resourceType='Either']

php.ini 设置:

[cgi-fcgi]
fastcgi.impersonate=1
cgi.force_redirect=0
cgi.fix_pathinfo=1

对于写入权限,您需要为 IURS 授予“修改”权限。

更多信息:http://php.net/manual/de/install.windows.iis7.php

【讨论】:

  • 我能够按照您的回答完成,我认为我涵盖了所有内容。当我尝试请求一个简单的 php 文件时,浏览器显示错误 500 - 内部服务器错误。因此,通过更多测试,我发现了一些与此错误相关的信息 - Module - FastCgiModule Notification - ExecuteRequestHandler Handler - PHP_FastCGI Error Code - 0x8007010b 任何想法?
  • 当所需目录不存在时,它看起来像一个常见的 Windows 错误代码。您能否提供您的 php.ini 文件和有关您的安装的信息? PHP目录、网站文档根目录等。您使用的是哪个 PHP 版本? VC11 NTS?
  • 您也可以提供您的 IIS 配置:%windir%\System32\inetsrv\config\applicationHost.config
【解决方案2】:

我确实尝试了贴在心里的答案,但我一直遇到问题。其实我也是跟着微软一步一步的PHP设置教程到TEETH的。我仍然无法让 PHP 在我的 IIS 上运行。尽管 Microsoft 警告不要使用 Windows Platform Installer(WPI),但我还是下载了 WPI 并运行了安装程序。在框架下,我找到了 PHP 5.6 并单击了添加按钮。然后,单击安装按钮。安装只用了大约 30 秒。只是要确定。我检查了 IIS 管理器,那里是 PHP 管理器。打开 PHP 管理器后,我注意到所有设置都在那里并启用,并且已经启用了 15 个不同的扩展。此外,它还禁用了大约 35 个扩展程序,但它让您可以选择在此处启用它们。

现在,我的 PHP 文件按预期呈现。我什至做了 phpinfo();浏览器显示所有 PHP 设置和信息。 :)

【讨论】:

  • 您在哪里找到了微软关于不使用 Web 平台安装程序的建议?他们的 PHP 版本没有我想的那么最新,但我认为他们仍在推荐它。
  • @Mark_1 他们说如果你是初学者最好使用 WPI。如果不是,他们建议您按照教程中列出的步骤操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 2015-07-10
  • 2014-05-27
相关资源
最近更新 更多