我正在尝试使用 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,但仅适用于一个站点。