Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 1abfe597bc89458ccaa645cd148862bb > files > 292

ocaml-ocamlnet-doc-3.7.3-3.mga4.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Netcamlbox.html">
<link rel="next" href="Netcgi_modtpl.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of class types" rel=Appendix href="index_class_types.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
<link title="Equeue" rel="Chapter" href="Equeue.html">
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
<link title="Unixqueue_pollset" rel="Chapter" href="Unixqueue_pollset.html">
<link title="Unixqueue_select" rel="Chapter" href="Unixqueue_select.html">
<link title="Uq_resolver" rel="Chapter" href="Uq_resolver.html">
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Uq_io" rel="Chapter" href="Uq_io.html">
<link title="Uq_lwt" rel="Chapter" href="Uq_lwt.html">
<link title="Uq_libevent" rel="Chapter" href="Uq_libevent.html">
<link title="Uq_mt" rel="Chapter" href="Uq_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Equeue_howto" rel="Chapter" href="Equeue_howto.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Https_client" rel="Chapter" href="Https_client.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
<link title="Netcamlbox" rel="Chapter" href="Netcamlbox.html">
<link title="Netcgi_apache" rel="Chapter" href="Netcgi_apache.html">
<link title="Netcgi_modtpl" rel="Chapter" href="Netcgi_modtpl.html">
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
<link title="Http_client_conncache" rel="Chapter" href="Http_client_conncache.html">
<link title="Http_client" rel="Chapter" href="Http_client.html">
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
<link title="Http_fs" rel="Chapter" href="Http_fs.html">
<link title="Ftp_fs" rel="Chapter" href="Ftp_fs.html">
<link title="Netclient_tut" rel="Chapter" href="Netclient_tut.html">
<link title="Netgssapi" rel="Chapter" href="Netgssapi.html">
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
<link title="Nethttpd_util" rel="Chapter" href="Nethttpd_util.html">
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
<link title="Netmech_scram" rel="Chapter" href="Netmech_scram.html">
<link title="Netmech_scram_gssapi" rel="Chapter" href="Netmech_scram_gssapi.html">
<link title="Netmcore" rel="Chapter" href="Netmcore.html">
<link title="Netmcore_camlbox" rel="Chapter" href="Netmcore_camlbox.html">
<link title="Netmcore_mempool" rel="Chapter" href="Netmcore_mempool.html">
<link title="Netmcore_heap" rel="Chapter" href="Netmcore_heap.html">
<link title="Netmcore_ref" rel="Chapter" href="Netmcore_ref.html">
<link title="Netmcore_array" rel="Chapter" href="Netmcore_array.html">
<link title="Netmcore_sem" rel="Chapter" href="Netmcore_sem.html">
<link title="Netmcore_mutex" rel="Chapter" href="Netmcore_mutex.html">
<link title="Netmcore_condition" rel="Chapter" href="Netmcore_condition.html">
<link title="Netmcore_queue" rel="Chapter" href="Netmcore_queue.html">
<link title="Netmcore_buffer" rel="Chapter" href="Netmcore_buffer.html">
<link title="Netmcore_matrix" rel="Chapter" href="Netmcore_matrix.html">
<link title="Netmcore_hashtbl" rel="Chapter" href="Netmcore_hashtbl.html">
<link title="Netmcore_process" rel="Chapter" href="Netmcore_process.html">
<link title="Netmcore_tut" rel="Chapter" href="Netmcore_tut.html">
<link title="Netmcore_basics" rel="Chapter" href="Netmcore_basics.html">
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
<link title="Netplex_semaphore" rel="Chapter" href="Netplex_semaphore.html">
<link title="Netplex_sharedvar" rel="Chapter" href="Netplex_sharedvar.html">
<link title="Netplex_mutex" rel="Chapter" href="Netplex_mutex.html">
<link title="Netplex_encap" rel="Chapter" href="Netplex_encap.html">
<link title="Netplex_mbox" rel="Chapter" href="Netplex_mbox.html">
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
<link title="Netplex_advanced" rel="Chapter" href="Netplex_advanced.html">
<link title="Netplex_admin" rel="Chapter" href="Netplex_admin.html">
<link title="Netshm" rel="Chapter" href="Netshm.html">
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
<link title="Netstream" rel="Chapter" href="Netstream.html">
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
<link title="Netmime" rel="Chapter" href="Netmime.html">
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
<link title="Neturl" rel="Chapter" href="Neturl.html">
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
<link title="Netdate" rel="Chapter" href="Netdate.html">
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
<link title="Netulex" rel="Chapter" href="Netulex.html">
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
<link title="Netaux" rel="Chapter" href="Netaux.html">
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
<link title="Netpagebuffer" rel="Chapter" href="Netpagebuffer.html">
<link title="Netfs" rel="Chapter" href="Netfs.html">
<link title="Netglob" rel="Chapter" href="Netglob.html">
<link title="Netauth" rel="Chapter" href="Netauth.html">
<link title="Netsockaddr" rel="Chapter" href="Netsockaddr.html">
<link title="Netnumber" rel="Chapter" href="Netnumber.html">
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr_mstring" rel="Chapter" href="Xdr_mstring.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Netcompression" rel="Chapter" href="Netcompression.html">
<link title="Netunichar" rel="Chapter" href="Netunichar.html">
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netsys" rel="Chapter" href="Netsys.html">
<link title="Netsys_posix" rel="Chapter" href="Netsys_posix.html">
<link title="Netsys_pollset" rel="Chapter" href="Netsys_pollset.html">
<link title="Netlog" rel="Chapter" href="Netlog.html">
<link title="Netexn" rel="Chapter" href="Netexn.html">
<link title="Netsys_win32" rel="Chapter" href="Netsys_win32.html">
<link title="Netsys_pollset_posix" rel="Chapter" href="Netsys_pollset_posix.html">
<link title="Netsys_pollset_win32" rel="Chapter" href="Netsys_pollset_win32.html">
<link title="Netsys_pollset_generic" rel="Chapter" href="Netsys_pollset_generic.html">
<link title="Netsys_signal" rel="Chapter" href="Netsys_signal.html">
<link title="Netsys_oothr" rel="Chapter" href="Netsys_oothr.html">
<link title="Netsys_xdr" rel="Chapter" href="Netsys_xdr.html">
<link title="Netsys_rng" rel="Chapter" href="Netsys_rng.html">
<link title="Netsys_types" rel="Chapter" href="Netsys_types.html">
<link title="Netsys_mem" rel="Chapter" href="Netsys_mem.html">
<link title="Netsys_tmp" rel="Chapter" href="Netsys_tmp.html">
<link title="Netsys_sem" rel="Chapter" href="Netsys_sem.html">
<link title="Netsys_pmanage" rel="Chapter" href="Netsys_pmanage.html">
<link title="Netgzip" rel="Chapter" href="Netgzip.html">
<link title="Netpop" rel="Chapter" href="Netpop.html">
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
<link title="Rpc_util" rel="Chapter" href="Rpc_util.html">
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
<link title="Rpc_auth_gssapi" rel="Chapter" href="Rpc_auth_gssapi.html">
<link title="Rpc_proxy" rel="Chapter" href="Rpc_proxy.html">
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
<link title="Rpc_intro_gss" rel="Chapter" href="Rpc_intro_gss.html">
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
<link title="Shell" rel="Chapter" href="Shell.html">
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
<link title="Shell_fs" rel="Chapter" href="Shell_fs.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html">
<link title="Intro" rel="Chapter" href="Intro.html">
<link title="Platform" rel="Chapter" href="Platform.html">
<link title="Foreword" rel="Chapter" href="Foreword.html">
<link title="Ipv6" rel="Chapter" href="Ipv6.html">
<link title="Regexp" rel="Chapter" href="Regexp.html"><link title="Setup" rel="Section" href="#setup">
<link title="Apache 1.3" rel="Subsection" href="#3_Apache13">
<link title="Apache 2.2 or later" rel="Subsection" href="#3_Apache22orlater">
<link title="Loading libraries" rel="Subsection" href="#3_Loadinglibraries">
<link title="Interaction with findlib" rel="Subsection" href="#3_Interactionwithfindlib">
<link title="Multi-threading" rel="Subsection" href="#3_Multithreading">
<link title="Installing scripts" rel="Subsection" href="#3_Installingscripts">
<link title="Compiling scripts" rel="Subsection" href="#3_Compilingscripts">
<title>Ocamlnet 3 Reference Manual : Netcgi_apache</title>
</head>
<body>
<div class="navbar"><a class="pre" href="Netcamlbox.html" title="Netcamlbox">Previous</a>
&nbsp;<a class="up" href="index.html" title="Index">Up</a>
&nbsp;<a class="post" href="Netcgi_modtpl.html" title="Netcgi_modtpl">Next</a>
</div>
<h1>Module <a href="type_Netcgi_apache.html">Netcgi_apache</a></h1>
<pre><span class="keyword">module</span> Netcgi_apache: <code class="code">sig</code> <a href="Netcgi_apache.html">..</a> <code class="code">end</code></pre><div class="info">
Netcgi Apache "mod" connector.
<p>

 See the <code class="code">Netcgi_mod.setup</code> section at the end of this file to know
 how to configure Apache.<br>
</div>
<hr width="100%">
<pre><span class="keyword">module</span> <a href="Netcgi_apache.Apache.html">Apache</a>: <code class="code">sig</code> <a href="Netcgi_apache.Apache.html">..</a> <code class="code">end</code></pre><div class="info">
Interface to Apache API.
</div>
<pre><span class="keyword">module</span> <a href="Netcgi_apache.Handler.html">Handler</a>: <code class="code">sig</code> <a href="Netcgi_apache.Handler.html">..</a> <code class="code">end</code></pre><div class="info">
Registering Apache handlers.
</div>
<pre><span id="TYPEcgi"><span class="keyword">class type</span> <a href="Netcgi_apache.cgi-c.html">cgi</a></span> = <code class="code">object</code> <a href="Netcgi_apache.cgi-c.html">..</a> <code class="code">end</code></pre><div class="info">
The usual <code class="code">cgi</code> class with an additional method to access Apache
    specificities.
</div>
<pre><span id="VALrun"><span class="keyword">val</span> run</span> : <code class="type">?config:<a href="Netcgi.html#TYPEconfig">Netcgi.config</a> -><br>       ?output_type:<a href="Netcgi.html#TYPEoutput_type">Netcgi.output_type</a> -><br>       ?arg_store:<a href="Netcgi.html#TYPEarg_store">Netcgi.arg_store</a> -><br>       ?exn_handler:<a href="Netcgi.html#TYPEexn_handler">Netcgi.exn_handler</a> -> (<a href="Netcgi_apache.cgi-c.html">cgi</a> -> unit) -> unit</code></pre><div class="info">
<code class="code">run f</code> register the function <code class="code">f</code> as a main function of the
      script.  Each call to the script will execute <code class="code">f cgi</code>.  The code
      outside <code class="code">f</code> will be executed only once (when the script is
      loaded into memory) which allows to cache database connections,
      etc.  (The code stays in memory unless you restart the server or
      the file changes on disk.)<br>
</div>
<div class="param_info"><code class="code">config</code> : Default: <a href="Netcgi.html#VALdefault_config"><code class="code">Netcgi.default_config</code></a></div>
<div class="param_info"><code class="code">output_type</code> : Default: <code class="code">`Direct ""</code></div>
<div class="param_info"><code class="code">arg_store</code> : Default: <code class="code">`Automatic</code> for all arguments.</div>
<div class="param_info"><code class="code">exn_handler</code> : See <a href="Netcgi.html#TYPEexn_handler"><code class="code">Netcgi.exn_handler</code></a>.  Default: delegate
      all exceptions to the default handler.</div>
<br>
<h2 id="setup">Setup</h2>
<p>

    <h3 id="3_Apache13">Apache 1.3</h3>
<p>

    You need to put in an Apache configuration file (we recommend
    /etc/apache/conf.d/netcgi_apache.conf) the following lines:
    <pre class="verbatim">    LoadModule netcgi_module /usr/lib/apache/1.3/mod_netcgi_apache.so
    NetcgiRequire netcgi2-apache
   </pre>
<p>

    <h3 id="3_Apache22orlater">Apache 2.2 or later</h3>
<p>

    You need to put in an Apache configuration file (we recommend
    /etc/apache2/mods-available/netcgi_apache.load) the following line:
    <pre class="verbatim">    LoadModule netcgi_module /usr/lib/apache2/modules/mod_netcgi_apache.so
    NetcgiRequire netcgi2-apache
   </pre>
    and make a symbolic link from /etc/apache2/mods-enabled/ to it to
    actually enable it.  Subsequent configuration is recommended to be
    in /etc/apache2/mods-available/netcgi_apache.conf (also to be
    linked to /etc/apache2/mods-enabled/).
<p>

    <h3 id="3_Loadinglibraries">Loading libraries</h3>
<p>

    If your scripts depend on other libraries, you need to load them
    using <code class="code">NetcgiLoad</code>.  More specifically, if your library is x.cma and
    is in the subdirectory y of standard OCaml directory (given by
    `ocamlc -where`), use
    <pre class="verbatim">    NetcgiLoad y/x.cma
   </pre>
    If x.cma is not in a subdirectory of `ocamlc -where`, you need to
    specify the full path.
<p>

    <h3 id="3_Interactionwithfindlib">Interaction with findlib</h3>
<p>

    Libraries managed with findlib are specially supported. In order to
    load a library "lib" just use
    <pre class="verbatim">    NetcgiRequire lib
   </pre>
    Findlib-managed libraries are automatically found.
<p>

    For special configurations one can also set Findlib predicates:
    <pre class="verbatim">    NetcgiPredicates p1,p2,p3,...
   </pre>
<p>

    <h3 id="3_Multithreading">Multi-threading</h3>
<p>

    If you need multi-threading call
    <pre class="verbatim">    NetcgiThread
   </pre>
    as the very first directive after <code class="code">LoadModule</code>, even before
    <code class="code">NetcgiRequire netcgi2-apache</code> (otherwise a number of
    critical sections remain unprotected in Ocamlnet, and you'll experience
    crashes).
<p>

    <h3 id="3_Installingscripts">Installing scripts</h3>
<p>

    You need also to tell Apache how to detect whether a script is to
    be handled by netcgi_apache, either by putting them in a special
    directory (here /caml-bin/):
    <pre class="verbatim">    Alias /caml-bin/ /path/to/your/scripts/
    &lt;Location /caml-bin&gt;
      SetHandler ocaml-bytecode
      NetcgiHandler Netcgi_apache.bytecode
      Options ExecCGI
      Allow from all
    &lt;/Location&gt;
   </pre>
    or by distinguishing them by their extension (here <code class="code">.cma</code>):
    <pre class="verbatim">    NetcgiHandler Netcgi_apache.bytecode
    AddHandler ocaml-bytecode .cma
   </pre>
<p>

    <h3 id="3_Compilingscripts">Compiling scripts</h3>
<p>

    If your script reside in the file <code class="code">x.ml</code>, compile it to <code class="code">x.cmo</code> or
    <code class="code">x.cma</code>.  If your script depends on other libraries, you may
    either load them with <code class="code">NetcgiLoad</code> (see above) or include them in
    <code class="code">x.cma</code>.  You need not include the <code class="code">netcgi_apache.cma</code>,
    <code class="code">netcgi.cma</code>, <code class="code">netstring.cma</code>, <code class="code">netsys.cma</code>, or <code class="code">pcre.cma</code> modules
    as these are already loaded into Apache (see above).<br>
</body></html>