较新版本的 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。