在web.config IIS中配置PHP(或其他)CGI配置

我最近使用Wix Tool Set为Web应用程序开发了一个安装程序(是,带有安装程序的Web应用程序)。

该向导指导用户获取网站安装所需的所有基本信息,如下所示:

在这里输入图像描述

在安装结束时使用自定义操作,我使用文档动态地配置IIS以处理CGI,以将FastCGI配置为托管PHP,Python, 应用程序 。 实现这些结果有很多步骤和发展,但问题在于:

我安装了应用程序,一切正常,但是,如果我卸载或安装另一个实例或另一个WebApplication,由IIS配置的处理程序就像全局一样,始终指向第一个安装的程序。 (卸载应用程序时发生此问题)位于IIS配置的C: Windows System32 inetsrv config中的applicationHost.config具有类似于全局的“配置”。

<handlers accessPolicy="Read, Script">
            <add name="PHP-FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:CIM_devbinphp-v5.6php-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处理程序从服务器/网站级别移动到单个应用程序。 为什么不在你的php应用程序文件夹中添加一个web.config文件,并在那里移动应用程序特定的处理程序。

  • https://stackoverflow.com/a/35332431/1766402 - 检查这个答案(我希望你在IIS中启用了CGI?)。 要通过wix执行此操作,您可以在自定义操作中添加以下命令并执行。 这将解锁父配置文件。
  • %windir% system32 inetsrv appcmd.exe解锁配置“SiteName / app1”-section:system.webServer / handlers

  • 在PHP应用程序文件夹(比如说c: php app1)中创建一个包含以下内容的web.config文件:
  • <?xml version="1.0"?>
    <configuration>
        <system.webServer>      
            <handlers>
                <add name="PHPviaFastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:UsersaxputheDocumentsPHPphp-cgi.exe" resourceType="Unspecified" />
            </handlers>
        </system.webServer> 
    </configuration>
    
  • 现在,如果您在IIS管理器中查看应用程序,您应该看到类似这样的内容(应用程序目录 - >处理程序映射)
  • 在这里输入图像描述

    注意“本地”这确认该设置来自您的本地web.config而不是来自applicationhost.config文件。

    链接地址: http://www.djcxy.com/p/38357.html

    上一篇: PHP (or whatever) CGI configuration in web.config IIS

    下一篇: How to manipulate expressions in matrices using sympy?