Недавно я разработал установщик для веб-приложения (да, веб-приложение с установщиком) с помощью набора инструментов Wix .
Мастер направляет пользователя на получение всей базовой информации, необходимой сайту для установки, и выглядит следующим образом:
Используя пользовательские действия в конце установки, я динамически настроил IIS на обработчик CGI с помощью документации , чтобы настроить FastCGI на Host PHP, Python, Applications . Для достижения этих результатов есть много шагов и развития, но проблема здесь:
Я установил приложение, и все работает нормально, но, если я удалю или установлю другой экземпляр или другой WebApplication, обработчики, настроенные 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" -section: system.webServer / обработчики
<?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.