Недавно я разработал установщик для веб-приложения (да, веб-приложение с установщиком), используя Набор инструментов Wix.
Мастер помогает пользователю получить всю основную информацию, необходимую сайту для установки, и выглядит следующим образом:
Используя пользовательские действия в конце установки, я динамически настраивал IIS для обработки CGI, используя документация, настроить FastCGI для хоста PHP, Python, Приложения. Есть много шагов и развития для достижения этих результатов, но проблема здесь:
Я установил приложение, и все работает нормально, но, если я удалю или установлю другой экземпляр или другое веб-приложение, обработчики, настроенные IIS, будут похожи глобально и всегда будут указывать на первый установленный. (Проблема возникает при удалении приложения)
applicationHost.config находится в C: \ Windows \ System32 \ Inetsrv \ Config то есть конфигурация IIS имеет «конфиг» как глобальный.
<handlers accessPolicy="Read, Script">
<add name="PHP-FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\CIM_dev\bin\php-v5.6\php-cgi.exe" resourceType="Either" />
<add name="CGI-exe_2" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
<add name="TRACEVerbHandler2" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
<add name="OPTIONSVerbHandler2" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
<add name="StaticFile2" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers>
У меня вопрос, есть ли способ сделать эту конфигурацию для каждого веб-сайта в web.config? Я пытался все вещи без успеха.
Так что, если я правильно понимаю, вы хотите переместить обработчики php с уровня сервера / веб-сайта на отдельные приложения. Почему бы вам не добавить файл web.config в папку вашего приложения php и переместить туда специальные обработчики приложения.
% windir% \ system32 \ inetsrv \ appcmd.exe разблокировать конфигурацию «SiteName / app1» — раздел: system.webServer / handlers
<?xml version="1.0"?>
<configuration>
<system.webServer>
<handlers>
<add name="PHPviaFastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\axputhe\Documents\PHP\php-cgi.exe" resourceType="Unspecified" />
</handlers>
</system.webServer>
</configuration>
Обратите внимание, что «local» подтверждает, что этот параметр исходит из вашего локального файла web.config, а не из файла applicationhost.config.
Других решений пока нет …