这些配置参数控制 IBM HTTP Server 中的 FastCGI 功能部件。
FastCGIAccessChecker 伪指令将 FastCGI 应用程序定义为每个目录的访问验证器。
语法 | FastCGIAccessChecker file name [-compat] |
作用域 | 目录、位置 |
缺省值 | 目录 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | 文件名 |
Apache 访问阶段在用户认证前,而请求提交的 HTTP 头确定允许访问所请求资源的决策。当动态组件作为访问验证决策(例如,时间或域帐户的状态)的一部分存在时,使用基于 FastCGI 的授权程序。
如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,该应用程序作为动态 FastCGI 应用程序启动。如果文件名不以斜杠(/)开头,那么应用程序假定该文件名与服务器根关联。
<Directory htdocs/protected> FastCgiAccessChecker fcgi-bin/access-checker </Directory>
Mod_fastcgi 几乎发送所有标准环境变量,这些变量通常可用于 CGI 和 FastCGI 请求处理程序。FastCGI 访问检查程序应用程序在成功响应(状态:200)返回的所有头作为环境变量传递到子进程,或 CGI 和 FastCGI 调用。不成功响应中返回的所有头都传递到客户机。使用 -compat 选项获取兼容 FastCGI 规范的行为。
Mod_fastcgi 将环境变量 FCGI_APACHE_ROLE 设置为 ACCESS_CHECKER,以表明已执行特定于 Apache 的授权程序阶段。
HTTP Server 不支持 FastCGI 授权应用程序的定制故障响应。请参阅 ErrorDocument 伪指令以获取变通方法。FastCGI 应用程序可以为文档提供服务。
FastCGIAccessCheckerAuthoritatve 伪指令使访问检查可以传递到更低级别的模块。
语法 | FastCGIAccessCheckerAuthoritative On | Off |
作用域 | 目录、位置 |
缺省值 | FastCGIAccessCheckerAuthoritative On |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | On 或 off |
如果 FastCGI 应用程序无法启用访问,那么如配置和 modules.c 文件中所定义,将 FastCgiAccessCheckerAuthoritative 伪指令明确设置为 Off,使访问检查可以传递到更低级别的模块。
缺省情况下,控制不传递且失败的访问检查将导致禁止的应答。禁用缺省值前仔细考虑含义。
FastCGIAuthenticator 伪指令将 FastCGI 应用程序定义为每个目录的鉴别器。
语法 | FastCGIAuthenticator file name [-compat] |
作用域 | 目录 |
缺省值 | 无 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | 文件名 |
鉴别器通过将提供的用户名和密码与已知用户名和密码列表或数据库匹配来验证请求者。当在现有独立程序中维护用户数据库,或者它驻留在机器上而不是在 Web 服务器上时,请使用基于 FastCGI 的鉴别器。
如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,该应用程序作为动态 FastCGI 应用程序启动。如果文件名不以斜杠(/)开头,那么假定该文件名与服务器根关联。
将目录或位置容器中的 FastCgiAuthenticator 伪指令与 AuthType 和 AuthName 伪指令协同使用。此伪指令仅支持基本用户认证类型。此认证类型需要必需的伪指令或 FastCgiAuthorizer 伪指令正确运行。
/Directory htdocs/protected> AuthType Basic AuthName ProtectedRealm FastCgiAuthenticator fcgi-bin/authenticator require valid-user </Directory>
Mod_fastcgi 伪指令几乎将通常可用的所有标准环境变量发送到 CGI 和 FastCGI 请求处理程序。FastCGI 认证应用程序在成功响应中(状态:200)返回的所有头作为环境变量传递到子进程,或 CGI 和 FastCGI 调用。不成功响应中返回的所有头都传递到客户机。使用 -compat 选项获取兼容 FastCGI 规范的行为。
Mod_fastcgi 伪指令将 FCGI_APACHE_ROLE 环境变量设置为 AUTHENTICATOR,表明已执行的特定于 Apache 的授权程序阶段。
此伪指令不支持 FastCGI 授权应用程序的定制故障响应。请参阅 ErrorDocument 伪指令以获取变通方法。FastCGI 应用程序可以为文档提供服务。
如果显式设置为 off 且 FastCGI 应用程序无法认证用户,那么 FastCGIAuthenticatorAuthoritative 伪指令使认证可以传递到配置和 modules.c 文件中定义的更低级别的模块。
语法 | FastCGIAuthenticatorAuthoritative On | Off |
作用域 | 目录 |
缺省值 | FastCgiAuthenticatorAuthoritative On |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | On 或 off |
将此伪指令与受到很好保护的 AuthUserFile 伪指令(包含一些与管理有关的用户)结合使用。
缺省情况下,控制不传递,而未知用户将导致“必需权限”应答。禁用缺省值前仔细考虑含义。
FastCGIAuthorizer 伪指令将 FastCGI 应用程序定义为每个目录的授权程序。
语法 | FastCgiAuthorizer file name [-compat] |
作用域 | 目录 |
缺省值 | 无 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | 文件名 |
授权程序验证已认证的用户是否可以访问请求的资源。当动态组件作为部分授权决策(例如,时间或用户票据的流通)存在时,使用基于 FastCGI 的授权程序。
如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,该应用程序作为动态 FastCGI 应用程序启动。如果文件名不以斜杠(/)开头,那么假定该文件名与服务器根关联。
在目录或位置容器中使用 FastCgiAuthorizer。包括 AuthType 和 AuthName 伪指令。此伪指令要求认证伪指令(例如,FastCgiAuthenticator、AuthUserFile、AuthDBUserFile 或 AuthDBMUserFile)正确运行。
<Directory htdocs/protected> AuthType Basic AuthName ProtectedRealm AuthDBMUserFile conf/authentication-database FastCgiAuthorizer fcgi-bin/authorizer </Directory>
Mod_fastcgi 伪指令几乎将通常可用的所有标准环境变量发送到 CGI 和 FastCGI 请求处理程序。FastCGI 认证应用程序在成功响应中(状态:200)返回的所有头作为环境变量传递到子进程,或 CGI 和 FastCGI 调用。不成功响应中返回的所有头都传递到客户机。使用 -compat 选项获取兼容 FastCGI 规范的行为。
Mod_fastcgi 伪指令将环境变量 FCGI_APACHE_ROLE 设置为 AUTHORIZER,表明已执行的特定于 Apache 的授权程序阶段。
此伪指令不支持 FastCGI 授权应用程序的定制故障响应。请参阅 ErrorDocument 伪指令以获取变通方法。FastCGI 应用程序可以为文档提供服务。
如果 FastCGI 应用程序无法认证用户,那么如配置和 modules.c 文件中所定义,当 FastCGIAuthorizerAuthoritative 伪指令显式设置为 Off 时,它会使认证可以传递到更低级别的模块。
语法 | FastCgiAuthorizerAuthoritative file name On | Off |
作用域 | 目录 |
缺省值 | FastCgiAuthorizerAuthoritative file name On |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | On 或 off |
将此伪指令与受到很好保护的 AuthUserFile(包含一些与管理有关的用户)结合使用。
缺省情况下,控制不传递,而未知用户将导致“必需权限”应答。禁用缺省值前仔细考虑含义。
FastCGIConfig 伪指令定义所有动态 FastCGI 应用程序的缺省参数。
语法 | FastCgiConfig option option... FastCgiConfig 伪指令不影响静态或外部应用程序。 |
作用域 | 目录 |
缺省值 | 无 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | 动态应用程序根据需求启动。附加的应用程序实例启动以满足大量的需求。由于需求减少,应用程序实例数也相应减少。许多选项管理此过程。 |
FastCGIExternalServer 将文件名定义为外部 FastCGI 应用程序。
它与 Fastcgiserver 伪指令一样运作,除了 CGI 应用程序正在 Web 服务器外的另一个进程中运行。
语法 | FastCgiExternalServer file name -host hostnameport [-appConnTimeout n] FastCgiExternalServer file name -socket file name [-appConnTimeout n] |
作用域 | 服务器配置 |
缺省值 | 无 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 |
|
FastCGIIpcDir 伪指令将目录指定为存储 UNIX 套接字文件的位置,这些 UNIX 套接字文件用于在应用程序和 Web 服务器之间通信。
语法 |
|
作用域 | 服务器配置 |
缺省值 | 无 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | 目录或名称 |
FastCgiIpcDir 伪指令将目录指定为存储和查找外部 FastCGI 应用程序情况下的 UNIX 套接字文件的位置,这些 UNIX 套接字文件用于在应用程序和 Web 服务器之间通信。如果该目录不以斜杠(/)开头,那么假定该目录与服务器根关联。如果该目录不存在,那么此函数尝试创建具有适当许可权的伪指令。在本地文件系统上指定目录。如果使用缺省目录或 /tmp 中的另一个目录,那么如果系统周期性地从 /tmp 目录删除文件,mod_fastcgi 将中断。
FastCgiIpcDir 伪指令将 name 指定为命名管道的根,这些命名管道用于在应用程序和 Web 服务器之间通信。以格式 >\\.\pipe\pipename. 定义名称。管道名语法可以包含除反斜杠外的任何字符。
FastCgiIpcDir 伪指令必须在任何 FastCgiServer 或 FastCgiExternalServer 伪指令前,它们利用 UNIX 套接字。确保 Web 服务器可读、可写和可执行的目录。没人可以访问此目录。
FastCGIServer 伪指令将文件名定义为静态 FastCGI 应用程序。
进程管理器启动应用程序的某个实例,缺省配置在以下括号中指定。如果静态应用程序实例因为任何原因死了,那么 mod_fastcgi 模块将衍生另一个实例来替换,并将记录处于警告日志级别的事件。
语法 | FastCgiServer file name [options] |
作用域 | 服务器配置 |
缺省值 | 无 |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | 目录或名称 |
FastCGIsuEXEC 伪指令支持 suEXEC-wrapper。
语法 | FastCgiSuexec On | Off file name |
作用域 | 服务器配置 |
缺省值 | FastCgiSuexec Off |
模块 | mod_fastcgi |
配置文件中的多个实例 | 是 |
值 | FastCgiSuexec 伪指令要求在 Apache 中为 CGI 启用 suEXEC。要使用 Apache 使用的同一 suEXEC-wrapper,将 FastCgiSuexec 设置为 On。要使用另一个 suEXEC-wrapper,请指定 suEXEC-wrapper 的文件名。如果文件名不以斜杠(/)开头,那么假定该文件名与服务器根关联。 |
启用 FastCgiSuexec 伪指令时,静态或外部 FastCGI 应用程序定义的位置变得很重要。这些区别从定义它们的虚拟服务器中的用户和组伪指令继承其用户和组。用户和组伪指令应该在 FastCGI 应用程序定义之前。此功能不会将 FastCGI 应用程序限制在定义它的虚拟服务器中。该应用程序可以对任何虚拟服务器(具有相同用户和组)的请求提供服务。如果接收了 FastCGI 应用程序的请求而未用正确的用户和组运行现有匹配定义,那么用正确的用户和组启动该应用程序的动态实例。此操作会导致用不同用户和组运行同一应用程序的多个副本。如果这会导致问题,那么排除从其他虚拟服务器到应用程序的导航,或者用相同的用户和组来配置虚拟服务器。
请参阅 Apache 文档,以了解有关 suEXEC 和安全含义的更多信息。