This module makes it possible to execute vanilla CGI (Common Gateway Interface) scripts in the server. A file that matches the definition of a ScriptAlias config directive is treated as a CGI script. A CGI script is executed by the server and it's output is returned to the client.
The CGI Script response comprises a message-header and a message-body, separated by a blank line. The message-header contains one or more header fields. The body may be empty. Example:
"Content-Type:text/plain\nAccept-Ranges:none\n\nsome very plain text"
The server will interpret the cgi-headers and most of them will be transformed into HTTP headers and sent back to the client.
Support for CGI-1.1 is implemented in accordance with the RFC 3875.
Syntax: ScritpNoCache
true | false
Default: - false -
Module: mod_cgi(3)
If ScriptNoCache is set to true the Web server will by default add the header fields necessary to prevent proxies from caching the page. Generally this is something you want.
ScriptNoCache true
Syntax: ScritpTimeout
Seconds
Default: 15
Module: mod_cgi(3)
The time in seconds the web server will wait between each chunk of data from the script. If the CGI-script not delivers any data before the timeout the connection to the client will be closed.
ScriptTimeout 15
Uses the following EWSAPI interaction data, if available:
{new_request_uri,NewRequestURI}
{remote_user,RemoteUser}
Uses the following EWSAPI functions:
This module furthermore exports a batch of functions to be used by other EWSAPI modules:
env(Info,Script,AfterScript) -> EnvString
Types:
Info = mod_record()
Script = AfterScript = EnvString = string()
This function should only be used when implementing CGI-1.1 functionality on UNIX platforms. |
open_port/2
is normally used to start and interact
with CGI scripts. open_port/2
takes an external program as
input; env(1)
(GNU Shell Utility) is typically
used in the case of a CGI script.
env(1)
execute the CGI script in a modified
environment and takes the CGI script and a string of
environment variables as input. env/3
returns an
appropriate CGI-1.1 environment variable string to be used
for this purpose. The environment variables in the string
are those defined in the RFC 3875
mod_record()
is a record as defined
in the EWSAPI Module
Programming in the Inets Users Guide.
status_code(CGIOutput) -> {ok,StatusCode} | {error,Reason}
Types:
CGIOutput = Reason = string()
StatusCode = integer()
Certain output from CGI scripts has a special meaning, as
described in the
RFC 3875 , for example if "Location:
http://www.yahoo.com\n\n"
is returned from a CGI script
the client gets automatically redirected to Yahoo!, using the HTTP 302
status code.