<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Apache Rivet 3.0 Configuration</title><link rel="stylesheet" type="text/css" href="rivet.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="Apache Rivet 3.0"><link rel="up" href="index.html" title="Apache Rivet 3.0"><link rel="prev" href="cmake.html" title="Building Rivet 3.0 with CMake"><link rel="next" href="processing.html" title="Apache Rivet HTTP Request Processing"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Apache Rivet 3.0 Configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmake.html"><img src="images/prev.png" alt="Prev"></a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="processing.html"><img src="images/next.png" alt="Next"></a></td></tr></table></div><div class="section"><div class="titlepage"><div><div><hr><h2 class="title" style="clear: both"><a name="directives"></a>Apache Rivet 3.0 Configuration</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm200"></a>Apache Rivet Configuration lines</h3></div></div></div><p style="width:90%">
	      Rivet directives are used within the Apache httpd server
	      configuration to set up the environment where Rivet script
	      will be run.
		</p><p style="width:90%">
			Rivet has 3 general <span class="quote">“<span class="quote">scope</span>”</span> directives

			</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">RivetDirConf: for configuration directives meant to
				apply to a directory tree</li><li class="listitem">RivetUserConf: for directives specific to
				a user private space</li><li class="listitem">RivetServerConf: for any directive meant to apply
				globally (either to the whole Rivet installation or a	single 
				<a class="ulink" href="https://httpd.apache.org/docs/2.4/vhosts" target="_top">virtual host</a>)
				</li></ul></div><p style="width:90%">
	      
			These directives are applied so that RivetDirConf will
	      override RivetUserConf, which in turn overrides any 
	      RivetServerConf directives. Not every configuration directory
	      is meaningful to a scope directive, as shown in the table below. The scope
	      of application of a configuration line is matched also with the context where
	      it appears. Virtual hosts definitions are contexts where rivet configuration
	      lines can appear in many adding further customization to a given virtual
	      host server.
	   </p><p style="width:90%">
			Example of configuration of a web server having independent 
			interpreters for each virtual host, a larger default cache and a specific
			script to be executed before any templates/scripts located in /var/www/myrivetapp
		</p><pre class="programlisting">&lt;IfModule rivet_module&gt;
    AddType application/x-httpd-rivet .rvt
    AddType application/x-rivet-tcl   .tcl

    RivetServerConf CacheSize              100
    RivetServerConf SeparateVirtualInterps On
&lt;/IfModule&gt;

&lt;Directory /var/www/myrivetapp&gt;
    RivetDirConf BeforeScript "source /var/www/myrivetapp/before_script.tcl"
&lt;/Directory&gt;</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idm212"></a>Configuration Directives</h3></div></div></div><div class="table"><table align="center" title="Configuration Directives application scopes" class="directives"><thead><td>Configuration Directives</td><td>DirConf</td><td>UserConf</td><td>ServerConf</td><td>Virtual Host</td><td>Notes</td></thead><tbody><tr><td>AbortScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>AfterScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>AfterEveryScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>BeforeScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>CacheSize</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>ChildExitScript</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>ChildInitScript</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>ErrorScript</td><td>X</td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>ExportRivetNS</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>GlobalInitScript</td><td></td><td></td><td>X</td><td></td><td>effective only when SeparateVirtualInterps is Off (default)</td></tr><tr><td>ImportRivetNS</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>HonorHeaderOnlyRequests</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>MpmBridge</td><td></td><td></td><td>X</td><td></td><td>global setting</td></tr><tr><td>RequestHandler</td><td></td><td></td><td>X</td><td>X</td><td></td></tr><tr><td>SeparateChannels</td><td></td><td></td><td>X</td><td></td><td>global setting</td></tr><tr><td>SeparateVirtualInterps</td><td></td><td></td><td>X</td><td></td><td>global setting</td></tr><tr><td>ServerInitScript</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>UploadDirectory</td><td></td><td>X</td><td>X</td><td>X</td><td></td></tr><tr><td>UploadFilesToVar</td><td></td><td></td><td>X</td><td></td><td></td></tr><tr><td>UploadMaxSize</td><td></td><td></td><td>X</td><td>X</td><td></td></tr></tbody></table></div><div class="variablelist"><dl class="variablelist"><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AbortScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						If an AbortScript is defined control is passed to it as
						soon as the command <a class="xref" href="abort_page.html" title="abort_page">abort_page</a> is called.
						AbortScript
						is the right place where specific actions can be taken
						to catch resources left dangling by the sudden interruption.				
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AfterScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  Script to be called after each parsed .rvt template or .tcl script
					  is executed
					</div><div style="margin-bottom:1.5ex ; padding .5ex">
					  In virtual hosts, this option overrides any AfterScript
					  definitions at the global level.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">AfterEveryScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						AfterEveryScript is a script that is to
						be run anyway before requests processing ends. This script
						is therefore run both when the content generation script
						completes successfully and when its execution is interrupted
						by <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>. The code in this script
						can understand whether it's running after the page was
						interrupted by calling <a class="xref" href="abort_page.html" title="abort_page">abort_page</a>	
						with the argument  ?<span style="font-family:monospace; font-weight: bold;">-aborting</span>?. The command
						will return 1 if an abort_page call took place 
						earlier in the request processing.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">BeforeScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  Script to be evaluated before each server parsed
					  (.rvt) page.  This can be used to create a standard
					  header, for instance.  It could also be used to load
					  code that you need for every page, if you don't want
					  to put it in a GlobalInitScript
					  ChildInitScript when you are first
					  developing a web site.
					  <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
					    This code is evaluated at the global level, not
					    inside the request namespace where pages are
					    evaluated.
					  </td></tr></table></div>
					</div><div style="margin-bottom:1.5ex ; padding .5ex">
					  In virtual hosts, this option takes precedence over
					  the global setting.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">CacheSize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>size</code></em></span>?</div></div>
   			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						  Sets the size of the internal page cache, where
						  <em class="replaceable"><code>size</code></em> is
						  the number of byte-compiled pages to be cached for
						  future use.  Default is
						  <span style="font-family:monospace"><span class="command"><strong>MaxRequestsPerChild</strong></span></span> / 5, or 50,
						  if <span style="font-family:monospace"><span class="command"><strong>MaxRequestsPerChild</strong></span></span> is 0.
						</div><div style="margin-bottom:1.5ex ; padding .5ex">
						  This option is completely global, even when using
						  separate per-virtual host interpreters.
						</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ChildExitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  Script to be evaluated when each Apache child
					  process exits. This is the logical place to clean
					  up resources created in ChildInitScript, 
					  if necessary.
					</div><div style="margin-bottom:1.5ex ; padding .5ex">
					  In virtual hosts, this script is run in addition to
					  any global childexitscript.
	              
	              When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterp</strong></span></span>
	              any <span style="font-family:monospace"><span class="command"><strong>ChildExitScript</strong></span></span> placed within a 
	              &lt;VirtualHost ...&gt;....&lt;/VirtualHost&gt;
	              will be that Virtual Host specific exit handler
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ChildInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  Script to be evaluated when each Apache child
					  process is initialized. This is the recommended
					  place to load modules, create global variables, open
					  connections to other facilities (such as databases)
					  and so on.
					</div><div style="margin-bottom:1.5ex ; padding .5ex">
					  In virtual hosts, this script is run in addition to
					  any global childinitscript. 
	                  When <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterp</strong></span></span>
	                  any <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> placed within a 
	                  &lt;VirtualHost ...&gt;....&lt;/VirtualHost&gt;
	                  will be that Virtual Host specific ininitalization
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ErrorScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  When Rivet encounters an error in a script, it
					  constructs an HTML page with some information about
					  the error, and the script that was being
					  evaluated. If an ErrorScript is
					  specified, it is possible to create custom error
					  pages.  This may be useful if you want to make sure
					  that users never view your source code.
					</div><div style="margin-bottom:1.5ex ; padding .5ex">
					  In virtual hosts, this option takes precedence over
					  the global setting.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ExportRivetNS</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
			  	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						Rivet commands are created within the ::rivet namespace. Setting
						this option you tell mod_rivet to place the whole command set on
						the export list of namespace, enabling your scripts to import
						them in a different namespace.
					</div><div style="margin-bottom:1.5ex ; padding .5ex">This option is, by nature, only available at the global level</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">HonorHeaderOnlyRequests</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  If a HEAD requests is issued by the client Rivet detects
					  this case and sends back to the client a standard header 
					  response. If the real header has to be examined (e.g. 
					  for debugging) you can turn this options on. 
					</div><div style="margin-bottom:1.5ex ; padding .5ex">This option is, by nature, only available at the global level</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ImportRivetNS</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
			  	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						Rivet commands are created within the ::rivet namespace. Setting
						this option you tell mod_rivet to place the whole command set on
						the export list of namespace (implicitly forcing also ExportRivetNS)
						and then importing the commands on the namespace export list into the 
						global namespace
					</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
						This option is provided only for compatibility with existing code that assumes
						mod_rivet commands to reside in the global namespace. It's utterly discouraged to
						use it and it could be removed in future versions of Rivet
						This option is, by nature, only available at the global level
					</td></tr></table></div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">MpmBridge</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>string</code></em></span>?</div></div>
	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						This global only option tells mod_rivet which MPM bridge has
						to be loaded. The string argument is interpreted
						first as a name of an MPM bridge and it's interpolated in the
						string
						<pre class="programlisting">bridge = apr_pstrcat(pool,RIVET_DIR,"/mpm/rivet_",rsc-&gt;mpm_bridge,"_mpm.so",NULL);</pre>
						Where RIVET_DIR is the location of the rivet libraries whose definition
						is controlled by the configuration argument <span style="color: red">&lt;term&gt;--with-rivet-target-dir=DIR&lt;/term&gt;</span>.
						For example 
						<pre class="programlisting">RivetServerConf MpmBridge lazy</pre> will cause the
						rivet_lazy_mpm.so library module to be loaded. If such library does not exists
						mod_rivet tries to check if such definition is the fully qualified path to 
						such MPM bridge. If this fails the module causes the web server to stop with an error.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">RequestHandler</span>  ?<span style="font-family:monospace; font-weight: bold;">request_handler_filename</span>?</div></div>
				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
						Filename of the request handler script. Overrides the default request handler. Can
						be virtual host specific
					</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
						Note that changing this scripts requires the programmer to understand mod_rivet
						request processing model. See the <a class="link" href="processing.html" title="Apache Rivet HTTP Request Processing">request processing</a>
						manual page 
					</td></tr></table></div></div></dd><dt><span class="term">
			     <div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">SeparateChannels</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
			  </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
	      			Internally mod_rivet creates a new Tcl channel (Rivet channel) which is configured
	      			as <span style="font-family:monospace"><span class="command"><strong>stdout</strong></span></span> and registered to each existing interpreter.
	      			There is no need of multiple channels in a single thread as each thread can 
	      			serve only one request at a time. But if you are deploying mod_rivet in a
	      			complex environment running unrelated applications developed by 
	      			different teams, it could be the case to have <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
	      			set. If you want to enhance the environment separation you may also
	      			set <span style="font-family:monospace"><span class="command"><strong>SeparateChannels</strong></span></span> to force mod_rivet to create
	      			a channel per each Tcl interpreter thus enabling single application
	      			code to change the Rivet channel parameters without affecting other
	      			applications (even though changing the Tcl channel parameters is a rare 
	      			necessity). Setting this options increases the system overheads as each
	      			Rivet channel needs to allocate its own control structures and internal
	      			buffers.
	      		</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
	      			This option is implemented in order to have fine-grained control over mod_rivet. In
	      			nearly all practical cases you won't need to change Rivet Channel (stdout) settings
	      			for different applications by calling <span style="font-family:monospace"><span class="command"><strong>fconfigure stdout ....</strong></span></span>. 
	      			This option is, by nature, only available at the global level and has effect only if 
	   		      also <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span> is set
	   		   </td></tr></table></div></div></dd><dt><span class="term">
		     		<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">SeparateVirtualInterps</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
		  		</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
	      		  If on, Rivet will create a separate Tcl interpreter
	      		  for each Apache virtual host.  This is useful in an
	      		  ISP type situation where it is desirable to separate
	      		  clients into separate interpreters, so that they
	      		  don't accidentally interfere with one another.
	      		</div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td align="left" valign="top">
	   		      This option is, by nature, only available at the
	   		      global level. By enabling <span style="font-family:monospace"><span class="command"><strong>SeparateVirtualInterps</strong></span></span>
	   		      you must rely only on <span style="font-family:monospace"><span class="command"><strong>ChildInitScript</strong></span></span> to
	   		      initialize the interpreters. Don't expect the 
	   		      initialization done in <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> and 
	   		      <span style="font-family:monospace"><span class="command"><strong>GlobalInitScript</strong></span></span> to be handed down to the
	   		      slave interpreters that are private to each configured 
	   		      virtual host.
	   		   </td></tr></table></div></div></dd><dt><span class="term">
   				<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">ServerInitScript</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>script</code></em></span>?</div></div>
   			</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
				    	The directive <span style="font-family:monospace"><span class="command"><strong>ServerInitScript</strong></span></span> plays a special
				    	role since the script runs within the master interpreter,
				    	an interpreter created when the Apache web server is setting up
				    	for answering requests and before worker processes/threads are
				    	started. During this stage Apache is still running as a 
				    	single process, so this is the right place for doing 
				    	initialization of systems such as any IPC systems.
   				</div><div style="margin-bottom:1.5ex ; padding .5ex">
		   			On systems with the capability of forking child processes
		   			the Apache web server can run the prefork MPM. By default 
		   			rivet selects the prefork brigde which makes mod_rivet work
		   			the way mod_rivet 2.x work.
		   			In a web server with this set up child processes inherit a copy of the 
		   			address space from the parent processes and therefore
		   			Tcl interpreters too are replicated into the child address space. 
		   			If SeparateVirtualInteprs is Off child processes run with a
		   			copy of the Tcl master interpreter and ServerInitScipt
		   			thus provides a way to initialize only once  
		   			any subsequent Tcl interpreters created by fork calls as each
		   			of them are clones of the master interpreter.
		   		</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadDirectory</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>directory</code></em></span>?</div></div>
		      </span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Directory to place uploaded files.</div><div style="margin-bottom:1.5ex ; padding .5ex">
			  			In virtual hosts, this option takes precedence over
			  			the global setting.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadFilesToVar</span>  (<span style="font-family:monospace; font-weight: bold;">yes</span> | <span style="font-family:monospace; font-weight: bold;">no</span>)</div></div>
	      	</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">
					  This option controls whether it is possible to
					  upload files to a Tcl variable.  If you have a size
					  limit, and don't have to deal with large files, this
					  might be more convenient than sending the data to a
					  file on disk.
					</div></div></dd><dt><span class="term">
					<div class="cmdsynopsis" style="width:80%"><div style="border: 1px solid #282; margin:1ex ; padding:.4ex; padding-left: 0.8ex;   word-spacing:1ex "> <span style="font-family:monospace; font-weight: bold;">UploadMaxSize</span>  ?<span style="font-family:monospace; font-weight: bold;"><em class="replaceable"><code>size</code></em></span>?</div></div>
				</span></dt><dd><div style="padding:4 ; margin-top:3 ; margin-bottom:3 ; width:75%"><div style="margin-bottom:1.5ex ; padding .5ex">Maximum size for uploaded files.</div><div style="margin-bottom:1.5ex ; padding .5ex">
					  In virtual hosts, this option takes precedence over
					  the global setting.
					</div></div></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cmake.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="processing.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Building Rivet 3.0 with CMake </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Apache Rivet HTTP Request Processing</td></tr></table></div></body></html>
