使用Visual Studio在IIS Express上启用PHP(没有WebMatrix)

Jør*_*ode 15 php visual-studio iis-express

我正在研究这个主要是.NET的Web应用程序,但是一部分是用PHP编写的.在我的开发环境中,IIS Express是我的首选Web服务器,所以我更希望在这种环境中让PHP和.NET协同工作.

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

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

不使用WebMatrix,这对我没什么帮助.然后我继续深入研究与谷歌上的IIS Express和PHP相关的任何内容.从我读到的,它应该是可行的,但我发现有关该主题的一切似乎都假设我的IDE是WebMatrix.事实并非如此.

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

vik*_*all 22

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

  1. 从以下链接下载IIS Express:Internet信息服务(IIS)7.5 Express

  2. 在Visual Studio中,将WebSite/WebApplication项目配置为使用IIS Express.看看这个主题如何配置网站项目以使用IIS Express?

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

如果所有内容都安装在美国英语版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']
Run Code Online (Sandbox Code Playgroud)

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

最后,如果您没有VS 2010 SP1,可能应该看一下这篇文章:使用IIS Express调试您的.NET Web项目

  • 要在IIS Express上启用PHP,请手动安装PHP并更新applicationhost.config(%userprofile%\ documents\iisexpress\config\applicationhost.config).您可以使用位于IIS Express安装文件夹中的appcmd.exe来执行此操作.以下链接将帮助您配置PHP http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-7/(在此查找'配置IIS 7使用命令行处理PHP请求') (3认同)
  • 请务必仔细检查您计算机上php-cgi.exe的位置.在我的例子中,使用WebPI安装PHP导致php-cgi.exe的版本特定位置:C:\ Program Files(x86)\ PHP\v5.5\php-cgi.exe (2认同)

Luk*_*brt 13

另一种选择是使用Web Platform Installer.

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


Mat*_*att 5

较新版本的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\{{YOUR PHP VERSION}}\php-cgi.exe"'] /apphostconfig:"C:\{{YOUR PROJECT}}\.vs\config\applicationhost.config"
"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\{{YOUR PHP VERSION}}\php-cgi.exe"',resourceType='Unspecified'] /apphostconfig:"C:\{{YOUR PROJECT}}\.vs\config\applicationhost.config"

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

system.webServer/FASTCGI

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

system.webServer /处理器

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

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