![]() |
![]() |
||
Using Fast Common Gateway Interface directivesThis section provides information on Fast Common Gateway Interface (FastCGI) directives.
The information includes specific directive syntax,
scopes, defaults and associated notes
FastCgiAccessChecker
The Apache Access phase precedes user authentication and the HTTP headers submitted with the request determine the decision to enable access to the requested resource. Use FastCGI-based authorizers when a dynamic component exists as part of the access validation decision, like the time, or the status of a domain account. If the FastCGI application file name does not have a corresponding static or external server definition, the application starts as a dynamic FastCGI application. If the file name does not begin with a slash (/), then the application assumes that the file name is relative to the ServerRoot. Use the FastCgiAccessChecker directive within Directory or Location containers. For example:
<Directory htdocs/protected> FastCgiAccessChecker fcgi-bin/access-checker </Directory> Mod_fastcgi sends nearly all of the standard environment variables typically available to CGI and FastCGI request handlers. All headers returned by a FastCGI access-checker application in a successful response (Status: 200), pass to subprocesses, or CGI and FastCGI invocations, as environment variables. All headers returned in an unsuccessful response pass to the client. Obtain FastCGI specification compliant behavior by using the -compat option. Mod_fastcgi sets the environment variable FCGI_APACHE_ROLE to ACCESS_CHECKER, to indicate the Apache-specific authorizer phase performed. The HTTP Server does not support custom failure responses from FastCGI authorizer applications. See the ErrorDocument directive for a workaround. A FastCGI application can serve the document. FastCgiAccessCheckerAuthoritative
Setting the FastCgiAccessCheckerAuthoritative directive explicitly to Off, enables access checking passing to lower level modules, as defined in the Configuration and modules.c files, if the FastCGI application fails to enable access. By default, control does not pass on and a failed access check results
in a forbidden reply. Consider the implications carefully before disabling the default. FastCgiAuthenticator
Authenticators verify the requester, by matching the provided user name and password against a list, or database of known users and passwords. Use FastCGI based authenticators when the user database gets maintained within an existing independent program, or resides on a machine other than the Web server. If the FastCGI application file name does not have a corresponding static or external server definition, the application starts as a dynamic FastCGI application. If the file name does not begin with a slash (/), then the file name is assumed relative to the ServerRoot. Use the FastCgiAuthenticator directive within Directory or Location containers,along with an AuthType and AuthName directive. This directive only supports the Basic user authentication type. This authentication type needs a Require, or FastCgiAuthorizer directive, to work correctly.
<Directory htdocs/protected> AuthType Basic AuthName ProtectedRealm FastCgiAuthenticator fcgi-bin/authenticator require valid-user </Directory> The Mod_fastcgi directive sends nearly all of the standard environment variables typically available to CGI and FastCGI request handlers. All headers returned by a FastCGI authentication application in a successful response (Status: 200) pass to subprocesses, or CGIand FastCGI invocations, as environment variables. All headers returned in an unsuccessful response pass to the client. Obtain FastCGI specification compliant behavior, by using the -compat option. The Mod_fastcgi directive sets the environment variable FCGI_APACHE_ROLE to AUTHENTICATOR, indicating the Apache-specific authorizer phase performed. This directive does not support custom failure responses from FastCGI authorizer applications. See the ErrorDocument directive for a workaround. A FastCGI application can serve the document. FastCgiAuthenticatorAuthoritative
Use this directive in conjunction with a well protected AuthUserFile directive, containing a few administration-related users. By default, control does not pass on and an unknown user results in an Authorization Required reply. Consider implications carefully before disabling the default. FastCgiAuthorizer
Authorizers validate whether an authenticated user can access a requested resource. Use FastCGI-based authorizers when a dynamic component exists as part of the authorization decision, such as the time, or currency of the user's bills. If the FastCGI application file name does not have a corresponding static or external server definition, the application starts as a dynamic FastCGI application. If the file name does not begin with a slash (/) then the file name is assumed relative to the ServerRoot. Use FastCgiAuthorizer within Directory or Location containers. Include an AuthType and AuthName directive. This directive requires an authentication directive, such as FastCgiAuthenticator, AuthUserFile, AuthDBUserFile, or AuthDBMUserFile to work correctly. <Directory htdocs/protected> AuthType Basic AuthName ProtectedRealm AuthDBMUserFile conf/authentication-database FastCgiAuthorizer fcgi-bin/authorizer </Directory> The Mod_fastcgi directive sends nearly all of the standard environment variables typically available to CGI and FastCGI request handlers. All headers returned by a FastCGI authentication application in a successful response (Status: 200) pass to subprocesses, or CGI and FastCGI invocations, as environment variables. All headers returned in an unsuccessful response pass on to the client. Obtain FastCGI specification compliant behavior by using the -compat option. The Mod_fastcgi directive sets the environment variable FCGI_APACHE_ROLE to AUTHORIZER, to indicate the Apache-specific authorizer phase performed. This directive does not support custom failure responses from FastCGI authorizer applications. See the ErrorDocument directive for a workaround. A FastCGI application can serve the document. FastCgiAuthorizerAuthoritative
Use this directive in conjunction with a well protected AuthUserFile containing a few administration-related users. By default, control does not pass on and an unknown user results in an Authorization Required reply. Consider the implications carefully before disabling the default. FastCgiConfig
The FastCgiConfig directive does not affect static or external applications. FastCgiExternalServer
|
|||
![]() |
|
||
![]() ![]() |
|
||
![]() ![]() ![]() |
FastCgiIpcDir
|
![]() |
UNIX platform: The FastCgiIpcDir directive specifies directory as the place to store and find, in the case of external FastCGI applications, the UNIX socket files used for communication between the applications and the Web server. If the directory does not begin with a slash (/) then it is assumed relative to the ServerRoot. If the directory does not exist, the function attempts to create the directive with appropriate permissions. Specify a directory on a local file system. If you use the default directory, or another directory within /tmp), mod_fastcgi breaks, if your system periodically deletes files from the /tmp directory. |
![]() ![]() |
Windows NT and Windows 2000 operating systems: The FastCgiIpcDir directive specifies name as the root for the named pipes used for communication between the application and the Web server. Put the name in the form >\\.\pipe\pipename. . The pipename part can contain any character, other than a backslash. |
||
The FastCgiIpcDir directive must precede any FastCgiServer or FastCgiExternalServer directives, which make use of UNIX sockets. Ensure a readable, writeable, and executable directory by the Web server. No one should have access to this directory. FastCgiServer
You can use one of the following case insensitive options: |
|||
![]() |
UNIX platform: The file name of the UNIX domain socket that the application uses for communication with the Web server. The module creates the socket within the directory specified by FastCgiIpcDir. This option makes the application accessible to other applications, for example, cgi-fcgi on the same machine, or through an external FastCGI application definition, FastCgiExternalServer. If neither the -socket nor the -port options are given, the module generates a UNIX domain socket file name. The -socket and -port options are mutually exclusive. |
||
![]() ![]() |
Windows NT and Windows 2000 operating systems: The name of the pipe for the application to use for communication with the Web server. The module creates the named pipe off the named pipe root specified by the FastCgiIpcDir directive. This option makes the application accessible to other applications, like cgi-fcgi on the same machine or through an external FastCGI application definition, FastCgiExternalServer. If neither the -socket nor the -port options are given, the module generates a name for the named pipe. The -socket and -port options are mutually exclusive. If the file name does not begin with a slash (/), then this file name is assumed relative to the ServerRoot. |
||
FastCgiSuexec
When you enable the FastCgiSuexec directive, the location of static or external FastCGI application definitions becomes important. These differences inherit their user and group from the User and Group directives in the virtual server in which they were defined. User and Group directives should precede FastCGI application definitions. This function does not limit the FastCGI application to the virtual server in which it was defined. The application can service requests from any virtual server with the same user and group. If a request is received for a FastCGI application, without an existing matching definition running with the correct user and group, a dynamic instance of the application starts with the correct user and group. This action can lead to multiple copies of the same application running with a different user and group. If this causes a problem, preclude navigation to the application from other virtual servers, or configure the virtual servers with the same user and group. See the Apache documentation for more information about suexec and the security implications.
(Back to the top) |