Up

module Netcgi_scgi

: sig

SCGI connector.

The SCGI connects your web applications through a TCP/IP socket (thus the application can run on a machine different from the web server).

See the Netcgi_scgi.setup section at the end of this file to know how to configure your web server.

#
val run : ?config:Netcgi.config -> ?allow:(Unix.sockaddr -> bool) -> ?output_type:Netcgi.output_type -> ?arg_store:Netcgi.arg_store -> ?exn_handler:Netcgi.exn_handler -> ?sockaddr:Unix.sockaddr -> ?port:int -> (Netcgi.cgi -> unit) -> unit

run f executes f cgi for each SCGI request.

config Default: [root:Netcgi].default_config
allow Tells whether a connection from the socket is allowed. Default: allow from all.
output_type Default: `Direct ""
arg_store Default: `Automatic for all arguments.
sockaddr The socket used by the web server to send the requests.
exn_handler See [root:Netcgi].exn_handler. Default: delegate all exceptions to the default handler.
sockaddr The sockaddr for listening. Overrides port
port The port for listening. Needs to be specified if no sockaddr is passed.
#
val handle_request : Netcgi.config -> Netcgi.output_type -> Netcgi.arg_store -> Netcgi.exn_handler -> (Netcgi.cgi -> unit) -> log:(string -> unit) option -> Unix.file_descr -> Netcgi.connection_directive

handle_request config output_type arg_store eh f ~log fd: This is a lower-level interface that processes exactly one request arriving on the existing connection fd.

log is the error logger function or None, in which case errors are passed through to the FCGI client.

The other arguments are just like for run.

The return value indicates whether the connection can be kept open or must be closed.

#

Setup

Add to httpd.conf or to, say, scgi.conf in /etc/apache/conf.d

    LoadModule scgi_module /usr/lib/apache/1.3/mod_scgi.so
    # Serve the URL /scgi by contacting 127.0.0.1 on port 8888
    SCGIMount /scgi 127.0.0.1:8888
end