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.
mod_cgi sends the response transfer-encoded to HTTP/1.1 compatible clients. The content
is transfer encoded with the chunked encoding algorithm. This means that
the Content-Length field not should be in the HTTP header. Furthermore
assumes mod_cgi that the first chunk of data from the script is the only chunk
with header information. If the first chunk of data from the script does not contain
"\r\n\r\n"
mod_cgi assumes that no HTTP-header information is to
come from the script. A chunk of data with HTTP header fields from a script
might look something like this:
"Content-Type:text/plain\r\nAccept-Ranges:none\r\n\r\nsome very plain text"
Support for CGI-1.1 is implemented in accordance with the CGI-1.1 specification.
CGI is currently available for Erlang/OTP running on a UNIX platform. These number of platforms will be increased. |
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
CGI-1.1
specification. 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
CGI
specification, 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 (RFC 1945).