【问题标题】:Enabling PHP on IIS Express with Visual Studio (sans WebMatrix)使用 Visual Studio(无 WebMatrix)在 IIS Express 上启用 PHP
【发布时间】:2011-08-31 05:53:57
【问题描述】:

我正在开发这个主要是 .NET 的 Web 应用程序,但其中一部分是用 PHP 编写的。在我的开发环境中,IIS Express 是我选择的 Web 服务器,因此我更希望 PHP 和 .NET 在此环境中协同工作。

第一次天真的尝试:只需将 PHP 脚本放入网站,然后将它们加载到浏览器中。结果是 HTTP Error 404.21 - Not Found 并带有以下建议:

  • 正确安装 PHP 并配置处理程序。
  • 为此网站安装并启用 PHP。
  • 如果您使用的是 WebMatrix,请按照以下步骤启用 PHP:
    • 在 WebMatrix 中打开网站。
    • 选择站点工作区并点击设置。
    • 选中“启用 PHP”复选框以安装和启用 PHP。

不使用 WebMatrix,这对我没有任何帮助。然后,我继续在 Google 上深入搜索与 IIS Express 和 PHP 相关的任何内容。从我读到的内容来看,它应该是可行的,但我发现的关于这个主题的一切似乎都假设我的 IDE 是 WebMatrix。不是。

有谁知道是否可以在 IIS Express 上安装并将其配置为与基于 Visual Studio 的网站一起使用,而无需安装 WebMatrix?如果是,怎么做?

【问题讨论】:

    标签: php visual-studio iis-express


    【解决方案1】:

    IIS Express 支持没有 Web 矩阵的 PHP。您可以单独安装 IIS Express 并使其与 Visual Studio 一起使用。为此,您需要 Visual Studio 2010 SP1。

    1. 从此链接下载 IIS Express:Internet Information Services (IIS) 7.5 Express

    2. 在 Visual Studio 中配置您的 WebSite/WebApplication 项目以使用 IIS Express。看看这个帖子How do I configure a website project to use IIS Express?

    3. 要在 IIS Express 上启用 PHP,请安装 PHP 并更新 applicationhost.config (%userprofile%\documents\iisexpress\config\applicationhost.config)。您可以使用位于 IIS Express 安装文件夹中的 appcmd.exe 版本来执行此操作。详情请见this link

    如果所有内容都安装在美国英语版 Windows 的默认位置,则命令将是:

    "C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/fastCGI /+[fullPath='"C:\Program Files (x86)\PHP\php-cgi.exe"']
    "C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='"C:\Program Files (x86)\PHP\php-cgi.exe"',resourceType='Unspecified']
    

    请注意,如果 php-cgi.exe 的完整路径中有空格,则必须将路径用单引号和双引号括起来,如上例所示。

    最后,如果你没有 VS 2010 SP1,或许你应该看看这个帖子:Debug Your .NET Web Project With IIS Express

    【讨论】:

    • 要在 IIS Express 上启用 PHP,请安装 PHP 并手动更新 applicationhost.config (%userprofile%\documents\iisexpress\config\applicationhost.config)。您可以使用位于 IIS Express 安装文件夹中的 appcmd.exe 来执行此操作。以下链接将帮助您配置 PHP learn.iis.net/page.aspx/246/…(在此查找“配置 IIS 7 以使用命令行处理 PHP 请求”)
    • 可以在 IISExpress 上运行 PHP 真是太棒了!
    • 我只是想在 Visual Studio 2012 中添加这一点,其中 90% 已经完成。我所要做的就是下载/安装 PHP,运行命令提示行将 FastCGI 映射到我的 PHP 文件夹,一切都很好。谢谢!
    • 请务必仔细检查您机器上 php-cgi.exe 的位置。就我而言,使用 WebPI 安装 PHP 会导致 php-cgi.exe 的版本特定位置:C:\Program Files (x86)\PHP\v5.5\php-cgi.exe
    • 如果您有 VS 2012 或 VS 2013,将内置 IIS Express。在这种情况下,设置过程要简单得多,如下所示codingterminal.com/articles/052015/1/…
    【解决方案2】:

    另一种选择是使用 Web 平台安装程序。

    Web Platform Installer 将为您安装 PHP 并配置 IIS Express。

    【讨论】:

    • 网络平台安装 5.0 超级简单。谢谢
    【解决方案3】:

    较新版本的 Visual Studio 维护 IIS Express 的配置文件“applicationhost.config”的单独副本。大多数在线说明向您展示了如何定位主 applicationhost.config 文件,该文件无效,因为 VS2017 维护一个单独的副本并在启动 IIS express 时使用此副本。要在这种情况下启用 PHP,我必须编辑 VS2017 的私有副本。

    • 先决条件 - 使用 Web 平台安装程序安装 PHP。 (您不需要 IIS Express,只需常规的 PHP 下载。)您可以使用 x86 或 x64。这会将 PHP 安装到 C:\Program Files\ 或 C:\Program Files (x86)\ 中,具体取决于您选择哪一个。你也可以简单地从他们的网站上获取 PHP。

    • 找到项目的 applicationhost.config。它位于隐藏的 .vs 子文件夹中。例如 C:\MyProject\.vs\applicationhost.config

    • 从命令窗口运行以下命令,用您的路径替换项目文件夹和您安装的 PHP 二进制文件。

    "C:\Program Files (x86)\IIS Express\appcmd.exe" set config /section:system.webServer/fastCGI /+[fullPath='"C:\Program Files (x86)\PHP\{{您的 PHP 版本}}\php-cgi.exe"'] /apphostconfig:"C:\{{您的项目}}\.vs\config\applicationhost.config"
    "C:\Program Files (x86)\IIS Express\appcmd.exe" 设置配置 /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*', modules='FastCgiModule',scriptProcessor='"C:\Program Files (x86)\PHP\{{YOUR PHP VERSION}}\php-cgi.exe"',resourceType='Unspecified'] /apphostconfig:"C:\ {{您的项目}}\.vs\config\applicationhost.config"
    

    或者,您可以简单地在文本编辑器中编辑项目的 applicationhost.config 并添加以下部分。

    system.webServer/fastCGI

    <fastCgi>
        <application fullPath="C:\Program Files (x86)\PHP\v7.1\php-cgi.exe" />
    </fastCgi>
    

    system.webServer/handlers

    <add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v7.1\php-cgi.exe" resourceType="Unspecified" />
    

    需要明确的是,编辑 IIS Express\AppServer\applicationhost.config 或 %appdata% 文件夹中的文件将无济于事,除非您正在执行一些高级操作,例如在 Visual Studio 之外启动 IIS Express。

    【讨论】:

      【解决方案4】:

      如果您通过 Visual Studio 运行 IIS,则需要使用 php 处理程序更新解决方案目录中的 .vs\config\applicationhost.config

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-18
        • 1970-01-01
        • 2017-09-03
        • 1970-01-01
        • 2015-05-20
        • 1970-01-01
        相关资源
        最近更新 更多