仅通过 AppCmd 将 PHP 处理程序添加到网站甚至文件夹

仅通过 AppCmd 将 PHP 处理程序添加到网站甚至文件夹

我正在尝试使用 AppCmd.exe 自动部署 IIS Web 服务器(目前为 8.5,需要一直降到 7.5)

我使用 PHP 的 FastCGI 来处理请求。我已在服务器级别配置了 FastCGI 池。

现在我需要设置一个新的处理程序来使用 FastCGI 模块处理 *.php 请求。

PHP 文档和各种 Microsoft 文档都说这个 AppCmd 命令可以执行此操作:

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+ [name='PHP_via_FastCGI',path='.php',verb='',modules='FastCgiModule',scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']

来源:http://php.net/manual/de/install.windows.iis7.php

虽然这确实有效,但它也将处理程序置于服务器级别。但我需要将处理程序置于网站级别。

我尝试了各种组合,最终得出以下命令:

set config "Default Web Site/" -section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='.php',verb='',modules='FastCgiModule',scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']

这告诉我无法在此级别进行配置。

但是当我使用 UI 将处理程序添加到网站时,我可以毫无问题地完成此操作。因此我认为我的命令仍然是错误的。

我在这里做错了什么?

欢呼,非常感谢,Worp

答案1

尝试一下这个:

appcmd.exe set config "Default Web Site" -section:system.webServer/handlers /+"[name='PHP_via_FastCGI',path='*.php',verb='',modules='FastCgiModule',scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']" /commit:apphost

它仍然更改 ApplicationHost.config 而不是 web.config,但仅适用于一个站点。

相关内容