Я пытаюсь автоматически развернуть веб-сервер IIS (в настоящее время 8.5, нужно будет также проработать его до 7.5), используя AppCmd.exe
Я использую PHP FastCGI для обработки запросов. Я настроил пул FastCGI на уровне сервера.
Теперь мне нужно настроить новый обработчик для обработки запросов * .php с помощью модуля FastCGI.
В документации PHP и различных документах Microsoft говорится, что эта команда AppCmd сделает это:
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+ [name='PHP_via_FastCGI',path='.php ', глагол ='',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 ', глагол ='',modules='FastCgiModule',scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']
Это говорит мне, что конфигурация не может быть выполнена на этом уровне.
Однако когда я использую пользовательский интерфейс для добавления обработчика на веб-сайт, я могу сделать это без проблем. Таким образом, я думаю, что моя команда все еще неверна.
Что я здесь делаю не так?
Ура и большое спасибо, Worp
Попробуй это:
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, но применяется только к одному сайту.