928 lines
56 KiB
HTML
928 lines
56 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE html
|
||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html lang="en-us" xml:lang="en-us">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<meta name="security" content="public" />
|
||
<meta name="Robots" content="index,follow" />
|
||
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
||
<meta name="DC.Type" content="topic" />
|
||
<meta name="DC.Title" content="Module mod_cgi" />
|
||
<meta name="copyright" content="(C) Copyright IBM Corporation 2002,2006" />
|
||
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2002,2006" />
|
||
<meta name="DC.Format" content="XHTML" />
|
||
<meta name="DC.Identifier" content="rzaiemod_cgi" />
|
||
<meta name="DC.Language" content="en-us" />
|
||
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
||
<!-- US Government Users Restricted Rights -->
|
||
<!-- Use, duplication or disclosure restricted by -->
|
||
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
||
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
||
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
||
<title>Module mod_cgi</title>
|
||
</head>
|
||
<body id="rzaiemod_cgi"><a name="rzaiemod_cgi"><!-- --></a>
|
||
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
<!--Java sync-link--><h1 class="topictitle1">Module mod_cgi</h1>
|
||
<div><div class="important"><span class="importanttitle">Important:</span> Information
|
||
for this topic supports the latest PTF levels for HTTP Server for i5/OS .
|
||
It is recommended that you install the latest PTFs to upgrade to the latest
|
||
level of the HTTP Server for i5/OS. Some of the topics documented here are
|
||
not available prior to this update. See <a href="http://www-03.ibm.com/servers/eserver/iseries/software/http/services/service.html" target="_blank">http://www.ibm.com/servers/eserver/iseries/software/http/services/service.htm</a> <img src="www.gif" alt="Link outside Information Center" /> for more information. </div>
|
||
<p><strong>Summary</strong></p>
|
||
<p>The module mod_cgi provides for execution of CGI scripts. This module will
|
||
process any file with mime type application/x-httpd-cgi. Any file that has
|
||
the mime type application/x-httpd-cgi or handler cgi-script will be treated
|
||
as a CGI script, and run by the server, with its output being returned to
|
||
the client. Files acquire this type either by having a name containing an
|
||
extension defined by the <a href="rzaiemod_mime.htm#addtype">AddType</a> directive,
|
||
or by being in a <a href="rzaiemod_alias.htm#scriptalias">ScriptAlias</a> directory.
|
||
</p>
|
||
<p>When the server invokes a CGI script, it will add a variable called DOCUMENT_ROOT
|
||
to the environment. This variable will contain the value of the <a href="rzaiemod_core.htm#documentroot">DocumentRoot</a> configuration variable. </p>
|
||
<p><strong>CGI Environment variables</strong></p>
|
||
<p>The server will set the CGI environment variables as described in the <a href="http://hoohoo.ncsa.uiuc.edu/cgi/" target="_blank">CGI
|
||
specification</a> <img src="www.gif" alt="Link outside Information Center" /> with the following provisions. See <a href="rzaieenvvar.htm">Environment variables on HTTP Server</a> for a list of environment variables.</p>
|
||
<dl><dt class="dlterm">REMOTE_HOST </dt>
|
||
<dd>This will only be set if <a href="rzaiemod_core.htm#hostnamelookups">HostNameLookups</a> is set to <var class="varname">double</var> (it is <var class="varname">off</var> by
|
||
default), and if a reverse DNS lookup of the accessing hosts address indeed
|
||
finds a host name. </dd>
|
||
</dl>
|
||
<dl><dt class="dlterm">REMOTE_IDENT </dt>
|
||
<dd>This will only be set if <a href="rzaiemod_core.htm#identitycheck">IdentityCheck</a> is set to <var class="varname">on</var> and the accessing host
|
||
supports the ident protocol. <div class="note"><span class="notetitle">Note:</span> The contents of this variable cannot be
|
||
relied upon because it can easily be faked. If there is a proxy between the
|
||
client and the server, the variable is not useful.</div>
|
||
</dd>
|
||
</dl>
|
||
<dl><dt class="dlterm">REMOTE_USER </dt>
|
||
<dd>This will only be set if the CGI script is subject to authentication.</dd>
|
||
</dl>
|
||
<div class="hr"><h4 class="sectiontitle">CGI Debug</h4><p>Debugging CGI scripts
|
||
has traditionally been difficult, mainly because it has not been possible
|
||
to study the output (standard output and error) for scripts which are failing
|
||
to run properly. However, the iSeries™ runs CGI programs in previously
|
||
started jobs (not prestart jobs) and it also reuses these jobs to run many
|
||
CGI program invocations. Therefore, debugging your CGI program is simple.
|
||
You simply need to find the job that runs CGI programs. It will have a jobname
|
||
the same as the server instance name. The joblog will contain either HTP2001
|
||
or HTP2002 indicating whether it is a CGI single threaded only job, or a CGI
|
||
multi-thread capable job. If you use a dedicated server instance, when you
|
||
invoke your CGI from a browser, the first job in the WRKACTJOB list for CGI,
|
||
will be the job chosen to run the CGI request. Therefore, you can use STRSRVJOB
|
||
against this job and STRDBG against your CGI program. From here, you have
|
||
full debug capabilities provided with the iSeries debugger. You can also
|
||
use standard error (stderr) for debug information. The debug information
|
||
written to STDERR is written to the ScriptLog if one is configured or to the
|
||
ErrorLog if a ScriptLog is not configured. The ScriptLog and ErrorLog are
|
||
both created with CCSID 1208 UTF-8. For CGI conversion mode EBCDIC, debug
|
||
information is assumed to be in the CCSID of the CGI job. The logging process
|
||
handles the conversion from CGI job CCSID to UTF-8. For CGI converison mode
|
||
BINARY, debug information is written as is. </p>
|
||
</div>
|
||
<div class="hr"><h4 class="sectiontitle">ScriptLog Format</h4><p>When configured,
|
||
the ScriptLog logs any CGI that does not execute properly. Each CGI script
|
||
that fails to operate causes several lines of information to be logged. The
|
||
first two lines are always of the format: </p>
|
||
<blockquote><pre>%% [time] request-line %% HTTP-status CGI-script-filename </pre>
|
||
</blockquote>
|
||
<p>If
|
||
the error is that CGI script cannot be run, the log file will contain an extra
|
||
two lines: </p>
|
||
<blockquote><pre>%%error error-message</pre>
|
||
</blockquote>
|
||
<p>Alternatively,
|
||
if the error is the result of the script returning incorrect header information
|
||
(often due to a bug in the script), the following information is logged: </p>
|
||
<blockquote><pre>%request All HTTP request headers received POST or PUT entity (if any) %response
|
||
All headers output by the CGI script %stdout CGI standard output %stderr CGI standard error </pre>
|
||
</blockquote>
|
||
<div class="note"><span class="notetitle">Note:</span> The <samp class="codeph">%stdout</samp> and <samp class="codeph">%stderr</samp> parts may be missing if the script did not output anything
|
||
on standard output or standard error</div>
|
||
</div>
|
||
<div class="hr"></div>
|
||
<p><strong>Directives</strong></p>
|
||
<ul><li><a href="#cgiconvmode">CGIConvMode</a></li>
|
||
<li><a href="#cgiinitialurl">CgiInitialUrl</a></li>
|
||
<li><a href="#cgijobccsid">CGIJobCCSID</a></li>
|
||
<li><a href="#cgijoblocale">CGIJobLocale</a></li>
|
||
<li><a href="#cgimultithreaded">CGIMultiThreaded</a></li>
|
||
<li><a href="#cgirecyclepersist">CGIRecyclePersist</a></li>
|
||
<li><a href="#defaultnetccsid">DefaultNetCCSID</a></li>
|
||
<li><a href="#maxcgijobs">MaxCGIJobs</a></li>
|
||
<li><a href="#maxpersistentcgi">MaxPersistentCGI</a></li>
|
||
<li><a href="#maxpersistentcgitimeout">MaxPersistentCGITimeout</a></li>
|
||
<li><a href="#maxthreadedcgijobs">MaxThreadedCGIJobs</a></li>
|
||
<li><a href="#persistentcgitimeout">PersistentCGITimeout</a></li>
|
||
<li><a href="#scriptlog">ScriptLog</a></li>
|
||
<li><a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
|
||
<li><a href="#scriptloglength">ScriptLogLength</a></li>
|
||
<li><a href="#startcgi">StartCGI</a></li>
|
||
<li><a href="#startthreadedcgi">StartThreadedCGI</a></li>
|
||
<li><a href="#threadedcgiinitialurl">ThreadedCgiInitialUrl</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="hr" id="cgiconvmode"><a name="cgiconvmode"><!-- --></a><h2 class="topictitle2">CGIConvMode</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIConvMode <var class="varname">mode</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIConvMode EBCDIC </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
||
.htaccess, Not in Limit</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: FileInfo </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIConvMode BINARY </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The CGIConvMode directive is used to specify the conversion mode that your
|
||
server will use when processing CGI programs.</p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>mode</em></dt>
|
||
<dd><ul><li>Valid modes include the following:
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><thead align="left"><tr><th valign="top" width="20.707070707070706%" id="d0e253">Mode</th>
|
||
<th valign="top" width="79.29292929292929%" id="d0e255">Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody><tr><td valign="top" width="20.707070707070706%" headers="d0e253 ">EBCDIC</td>
|
||
<td valign="top" width="79.29292929292929%" headers="d0e255 ">The server converts everything into the EBCDIC CCSID
|
||
of the CGI job. If the directive CGIJobCCSID exists, it has precedence in
|
||
its context over the job CCSID of the server. The server assumes the header
|
||
output and encoded characters "%xx" are in the EBCDIC CCSID of the CGI job.
|
||
The server assumes that the body output is in the EBCDIC CCSID of the CGI
|
||
job unless specified otherwise using the Content-type header.</td>
|
||
</tr>
|
||
<tr><td valign="top" width="20.707070707070706%" headers="d0e253 ">EBCDIC_JCD</td>
|
||
<td valign="top" width="79.29292929292929%" headers="d0e255 ">The server will use the Japanese Codepage Detection
|
||
utility to determine which Japanese ASCII CCSID to convert from. Otherwise,
|
||
this option is the same as the EBCDIC option.</td>
|
||
</tr>
|
||
<tr><td valign="top" width="20.707070707070706%" headers="d0e253 ">BINARY</td>
|
||
<td valign="top" width="79.29292929292929%" headers="d0e255 ">The server performs no conversion on QUERY_STRING or
|
||
STDIN data. Environment variables are encoded in the CGI job's EBCDIC CCSID. <p>The
|
||
server expects the header output and encoded characters "%xx" in ASCII.
|
||
The server assumes that the body output is in ASCII unless specified otherwise
|
||
using the Content-type header. This differs from no parse header CGI in that
|
||
the server will still build the HTTP headers and perform conversion on the
|
||
body output if necessary.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="cgiinitialurl"><a name="cgiinitialurl"><!-- --></a><h2 class="topictitle2">CgiInitialUrl</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CgiInitialUrl <var class="varname">url userid</var></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /qsys.lib/qsyscgi.lib/db2www.pgm/mymacros/macro.ndm/initial
|
||
*</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm
|
||
QTMHHTP1</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /QOpenSys/mypacedir/pacecgi
|
||
USER1</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm?init=yes</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>This directive is used to load and initialize CGI programs when the server
|
||
starts. At server startup, when we are processing the StartCgi directive,
|
||
we are starting jobs to run CGI programs in. This new directive will enable
|
||
the server to run a CGI request to the CGI job enabling the CGI program to
|
||
be loaded and initialized. This is beneficial for Net.Data<sup>®</sup> users and other CGI programs
|
||
built to use "named" activation groups. The initialization of the "named"
|
||
activation group is a performance issue that the first user of the CGI job
|
||
has to endure. This function will enable the performance issue to be moved
|
||
to when the server starts, so the first user does not have to pay the performance
|
||
penalty. </p>
|
||
<p>If there are no StartCgi directives, an error will be posted and the server
|
||
will not start.</p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter One</strong>: <em>url</em></dt>
|
||
<dd><ul><li>The <var class="varname">url</var> parameter value is actually the physical path
|
||
URL, not the logical path URL. It should not be fully qualified (do not use <kbd class="userinput">http://system:port/</kbd>).
|
||
It must start with a <kbd class="userinput">/</kbd> and contains the physical path
|
||
to the CGI program and any path info needed by the CGI program, including
|
||
query-string. If a URL is specified that is not valid, the server will not
|
||
start.</li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl><dt class="dlterm"><strong>Parameter Two</strong>: <em>userid</em></dt>
|
||
<dd><ul><li>The <var class="varname">userid</var> parameter value is either a valid iSeries
|
||
userid or <kbd class="userinput">*</kbd> where <kbd class="userinput">*</kbd> means all
|
||
of the userids specified on the StartCgi directive. To check for valid values,
|
||
follow the rules for iSeries user profiles. The userid is optional.</li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="nested1" xml:lang="en-us" id="cgijobccsid"><a name="cgijobccsid"><!-- --></a><h2 class="topictitle2">CGIJobCCSID</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIJobCCSID <var class="varname">cgi-job-character-set-identification-number</var></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIJobCCSID <var class="varname">Dependent upon server-character-set-identification-number</var></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
||
not in limit, .htaccess</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIJobCCSID 37 </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run one CGI program in CCSID 37 (English):<pre>ScriptAlias /cgi-english/ /QSYS.LIB/ENGLISH.LIB/
|
||
<Directory /QSYS.LIB/ENGLISH.LIB/>
|
||
Allow From all
|
||
Options +ExecCGI
|
||
DefaultNetCCSID 819
|
||
CGIJobCCSID 37
|
||
CGIConvMode EBCDIC
|
||
</Directory></pre>
|
||
</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run a different CGI program in CCSID
|
||
284 (Spanish):<pre>ScriptAlias /cgi-spanish/ /QSYS.LIB/SPANISH.LIB/
|
||
<Directory /QSYS.LIB/SPANISH.LIB/>
|
||
Allow From all
|
||
Options +ExecCGI
|
||
DefaultNetCCSID 819
|
||
CGIJobCCSID 284
|
||
CGIConvMode EBCDIC
|
||
</Directory></pre>
|
||
</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: For GET and POST – Use the URI to determine
|
||
the language of the user:<pre>Enter: http://www.mydomain.com/cgi-bin/ENG/819/...
|
||
The configuration file would have this container configuration:
|
||
<Location /cgi-bin/ENG/819/>
|
||
DefaultNetCCSID 819
|
||
CGIJobCCSID 37
|
||
</Location>
|
||
ScriptAlias /cgi-bin/ /QSYS.LIB/CGI.LIB/
|
||
<Directory /QSYS.LIB/CGI.LIB/>
|
||
Allow From all
|
||
Options +ExecCGI
|
||
CGIConvMode EBCDIC
|
||
</Directory>
|
||
|
||
The same configuration can handle this URI for a Japanese speaking user.
|
||
Enter: http://www.mydomain.com/cgi-bin/JAP/942/
|
||
|
||
The configuration file would also have this container configuration:
|
||
<Location /cgi-bin/JAP/942/>
|
||
DefaultNetCCSID 942
|
||
CGIJobCCSID 5035
|
||
CGIConvMode EBCDIC_JCD
|
||
</Location>
|
||
ScriptAlias /cgi-bin/ /QSYS.LIB/CGI.LIB/
|
||
<Directory /QSYS.LIB/CGI.LIB/>
|
||
Allow From all
|
||
Options +ExecCGI
|
||
CGIConvMode EBCDIC
|
||
</Directory> </pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="p">The CGIJobCCSID directive specifies the CCSID under which CGI jobs run,
|
||
the CGI job character set environment, and the EBCDIC CCSID that is used when
|
||
the server converts: <ul><li>Input request data for user CGI programs</li>
|
||
<li>Output response data from user CGI programs to be sent back to the requester
|
||
(client browser)</li>
|
||
</ul>
|
||
If this directive is not specified, the default behavior is to have the
|
||
CGI job run under the same CCSID as the main server jobs. See the DefaultFsCCSID
|
||
directive for detailed information on how this is determined. </div>
|
||
</div>
|
||
</div>
|
||
<div class="nested1" xml:lang="en-us" id="cgijoblocale"><a name="cgijoblocale"><!-- --></a><h2 class="topictitle2">CGIJobLocale</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGILocale <var class="varname">locale_path_name</var></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
||
not in limit, .htaccess</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIJobLocale /QSYS.LIB/LOCALELIB.LIB/EN_US.LOCALE</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run one CGI program in CCSID 37 with
|
||
an English based locale (English):<pre>ScriptAlias /cgi-english/ /QSYS.LIB/ENGLISH.LIB/
|
||
|
||
<Directory /QSYS.LIB/ENGLISH.LIB/>
|
||
Allow From all
|
||
Options +ExecCGI
|
||
DefaultNetCCSID 819
|
||
CGIJobCCSID 37
|
||
CGIJobLocale /QSYS.LIB/LOCALELIB.LIB/EN_US.LOCALE
|
||
CGIConvMode EBCDIC
|
||
</Directory> </pre>
|
||
</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: To run a different CGI program in CCSID
|
||
273 and with a German based locale (German):<pre>ScriptAlias /cgi-german/ /QSYS.LIB/GERMAN.LIB/
|
||
<Directory /QSYS.LIB/GERMAN.LIB/>
|
||
Allow From all
|
||
Options +ExecCGI
|
||
DefaultNetCCSID 819
|
||
CGIJobCCSID 273
|
||
CGIJobLocale /QSYS.LIB/LOCALELIB.LIB/DE_DE.LOCALE
|
||
CGIConvMode EBCDIC
|
||
</Directory> </pre>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>Applications can be created independent of language, cultural data, or
|
||
specific characters. Locales can be accessed to provide this type of support
|
||
to any integrated language environment-based application. The CGIJobLocale
|
||
directive allows a locale to be set globally or for a specific CGI job. After
|
||
the locale is set, country specific information such as date or time format
|
||
can be accessed. Some ILE C/C++ run time functions such as <samp class="codeph">ctime()</samp> and <samp class="codeph">localtime()</samp> are
|
||
locale sensitive. The environment variable CGI_JOB_LOCALE is set from the
|
||
CGIJobLocale directive. </p>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="cgimultithreaded"><a name="cgimultithreaded"><!-- --></a><h2 class="topictitle2">CGIMultiThreaded</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIMultiThreaded <var class="varname">on | off</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIMultiThreaded off </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
||
.htaccess, Not in Limit</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: FileInfo </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIMultiThreaded on </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The CGIMultiThreaded directive is used to specify whether your CGI programs
|
||
should be run in a job that is multiple thread capable. HTTP Server uses a
|
||
pool of pre-started jobs for handling CGI requests. Multiple threaded programs
|
||
must run in a multiple thread-capable job. The job pool that the job runs
|
||
in is specified at job startup time. Once the job has started, it cannot be
|
||
changed to another job pool. Not all iSeries APIs are thread safe, some will
|
||
issue an error if used in a multiple thread-capable job. This happens even
|
||
if the program does not actually have multiple threads running. Because of
|
||
this, HTTP Server must default to non-multiple thread capable jobs for CGI
|
||
programs for compatibility reasons. If your CGI program uses multiple threads,
|
||
it must run in a multiple thread capable job. If your CGI does not need multiple
|
||
threads, you should run it in the single threaded CGI job for performance
|
||
reasons. </p>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="cgirecyclepersist"><a name="cgirecyclepersist"><!-- --></a><h2 class="topictitle2">CGIRecyclePersist</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: CGIRecyclePersist <var class="varname">on | off</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: CGIRecyclePersist off </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config, virtual host, directory,
|
||
.htaccess, Not in Limit</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: FileInfo </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: CGIRecyclePersist on </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The CGIRecyclePersist directive instructs the server what should be done
|
||
with the job that was being used by a persistent CGI when the persistent CGI
|
||
exits persistence normally. </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>on | off</em></dt>
|
||
<dd><ul><li>The <var class="varname">on</var> value indicates that the server can reuse this
|
||
job for other CGI requests. When this is used, the persistent CGI program
|
||
is responsible for cleaning up any static data from the persistent CGI transaction.
|
||
The server will not perform any action other than to remove all environment
|
||
variables, to clean up any static data. Before using this setting, the CGI
|
||
programmer need to verify that it does indeed clean up its static data. </li>
|
||
<li>The <var class="varname">off</var> value indicates that the server will not reuse
|
||
this job for other CGI requests. This is the default behavior. </li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="defaultnetccsid"><a name="defaultnetccsid"><!-- --></a><h2 class="topictitle2">DefaultNetCCSID</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: DefaultNetCCSID <var class="varname">client-character-set-identification-number</var></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: DefaultNetCCSID 819</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: <span id="defaultnetccsid__defaulttype_context"><a name="defaultnetccsid__defaulttype_context"><!-- --></a>server config,
|
||
virtual host, directory, .htaccess </span></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: DefaultNetCCSID 819</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="p">The DefaultNetCCSID directive specifies the client character set environment
|
||
and defines the ASCII or UTF-8 CCSID that is used when converting: <ul><li>Input request data for user CGI programs or Apache modules.</li>
|
||
<li>When serving EBCDIC documents and no ASCII CCSID can be deduced from the
|
||
file CCSID.</li>
|
||
<li>Output response data from user CGI programs, or Apache modules, to be
|
||
sent back to the requester (client browser).</li>
|
||
</ul>
|
||
A configuration file can contain more than one DefaultNetCCSID directive,
|
||
but the last directive in the configuration file determines the CCSID. Starting
|
||
in i5/OS™ V5R4,
|
||
the use of this directive is expanded to help you configure a single server
|
||
to handle requests in more than one language. The directive is now allowed
|
||
in a virtual host container and in directory containers. This directive is
|
||
supported in the global scope.</div>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="maxcgijobs"><a name="maxcgijobs"><!-- --></a><h2 class="topictitle2">MaxCGIJobs</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxCGIJobs <var class="varname">number</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxCGIJobs 40 or value of the ThreadsPerChild
|
||
directive</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxCGIJobs 50</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The MaxCGI directive is used to set the maximum number of CGI jobs that
|
||
the server will concurrently use. The server will only run CGI programs in
|
||
jobs where the user profile for the CGI job matches the user profile that
|
||
the request is to run under. If you protect your CGI programs with many different
|
||
dummy iSeries profiles ( profiles with no password) or use %%CLIENT%% (each
|
||
user has their own iSeries profile and it is used to run the CGI program),
|
||
then you may want to use this directive to allow the server to start more
|
||
CGI jobs to handle the CGI programs. The server does reuse the CGI jobs, but
|
||
only when the profile for the CGI program matches the profile for the CGI
|
||
job. If you see the server ending and starting CGI jobs regularly, then you
|
||
may want to use this directive to allow the server to use more CGI jobs. This
|
||
would improve the capacity and performance of your system and server. </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
||
<dd><ul><li>The <var class="varname">number</var> parameter accepts any positive number. If
|
||
an invalid value is used, or the number is smaller than the value of the ThreadsPerChild
|
||
directive, then the server will use a default of (value of ThreadsPerChild).
|
||
If ThreadsPerChild directive is not present, then the default of this directive
|
||
will be set to 40. </li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="maxpersistentcgi"><a name="maxpersistentcgi"><!-- --></a><h2 class="topictitle2">MaxPersistentCGI</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxPersistentCGI <var class="varname">number</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxPersistentCGI 40 </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxPersistentCGI 50 </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The MaxPersistentCGI directive is used to set the maximum number of active
|
||
persistent CGI jobs that you want to have active at one time. </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
||
<dd><ul><li>The <var class="varname">number</var> parameter sets the maximum number of active
|
||
persistent CGI jobs that are active at any one time.</li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="maxpersistentcgitimeout"><a name="maxpersistentcgitimeout"><!-- --></a><h2 class="topictitle2">MaxPersistentCGITimeout</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxPersistentCGITimeout <var class="varname">number</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxPersistentCGITimeout 1200 </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxPersistentCGITimeout 1800 </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The MaxPersistentCGITimeout directive specifies the maximum number of seconds
|
||
that a CGI program can use when overriding the PersistentCGITimeout directive.</p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
||
<dd><ul><li>The <var class="varname">number</var> parameter value must be greater than 1 second.</li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="maxthreadedcgijobs"><a name="maxthreadedcgijobs"><!-- --></a><h2 class="topictitle2">MaxThreadedCGIJobs</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: MaxThreadedCGIJobs <var class="varname">number</var></td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: MaxThreadedCGIJobs 40 or the value of ThreadsPerChild
|
||
directive</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: MaxThreadedCGIJobs 50</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The MaxThreadedCGIJobs directive is used to set the maximum number of multiple
|
||
thread capable CGI jobs that the server will concurrently use. The server
|
||
will only run multiple thread capable CGI programs in jobs where the user
|
||
profile for the multiple thread capable CGI job matches the user profile that
|
||
the request is to run under. If you protect your multiple thread capable CGI
|
||
programs with many different dummy iSeries profiles (profiles with no password)
|
||
or use %%CLIENT%% (each user has their own iSeries profile and it is used
|
||
to run the multiple thread capable CGI program), then you may want to use
|
||
this directive to allow the server to start more multiple thread capable CGI
|
||
jobs to handle the multiple thread capable CGI programs. The server does reuse
|
||
the CGI jobs, but only when the profile for the multiple thread capable CGI
|
||
program matches the profile for the multiple thread capable CGI job. If you
|
||
see the server ending and starting multiple thread capable CGI jobs regularly,
|
||
then you may want to use this directive to allow the server to use more multiple
|
||
thread capable CGI jobs. This would improve the capacity and performance of
|
||
your system and server. </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
||
<dd><ul><li>The <var class="varname">number</var> parameter value can be any positive number.
|
||
If an invalid value is used, or the number is smaller than the value of the
|
||
ThreadsPerChild directive, then the server will use a default of (value of
|
||
ThreadsPerChild). If ThreadsPerChild directive is not present, then the default
|
||
of this directive will be set to 40. </li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="persistentcgitimeout"><a name="persistentcgitimeout"><!-- --></a><h2 class="topictitle2">PersistentCGITimeout</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: PersistentCGITimeout <var class="varname">number</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: PersistentCGITimeout 300 </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: PersistentCGITimeout 120 </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>This directive specifies the number of seconds that your server waits for
|
||
a client response before ending a persistent CGI session. The CGI program
|
||
can override the value that you specify on a request-by-request basis. </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>number</em></dt>
|
||
<dd><ul><li>The <var class="varname">number</var> parameter can be any amount of time greater
|
||
than 1 second. </li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="scriptlog"><a name="scriptlog"><!-- --></a><h2 class="topictitle2">ScriptLog</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ScriptLog <var class="varname">filename</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: Modified</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ScriptLog /QIBM/userdata/httpa/(instance
|
||
name)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The ScriptLog directive sets the Common Gateway Interface (CGI) script
|
||
error logfile. If no ScriptLog is given, no CGI error log is created. If a
|
||
ScriptLog is given, any CGI errors are logged into the filename given as the
|
||
argument. If this is a relative file or path, it is taken relative to the
|
||
server root. </p>
|
||
<p>This log will be opened as the user the child processes run as, for example
|
||
the user specified in the main User directive. This means that either the
|
||
directory the script log is in needs to be writable by that user or the file
|
||
needs to be manually created and set to be writable by that user. If you place
|
||
the script log in your main logs directory, do not change the directory permissions
|
||
to make it writable by the user the child processes run as. </p>
|
||
<div class="note"><span class="notetitle">Note:</span> The script logging is meant to be a debugging feature when writing CGI
|
||
scripts, and is not meant to be activated continuously on running servers.
|
||
It is not optimized for speed or efficiency, and may have security problems
|
||
if used in a manner other than that for which it was designed. </div>
|
||
<p><strong>Behavior</strong></p>
|
||
<p>If the filename does not begin with a slash ('/') then it is assumed to
|
||
be relative to the ServerRoot.</p>
|
||
<p>If the path ends with a '/' character, then the path is considered to be
|
||
the directory that will contain the log file. </p>
|
||
<p>The ScriptLog file will be created with CCSID 1208 (UTF8). Customer data
|
||
written to the script log is assumed to be in the CGI job CCSID and will automatically
|
||
be converted to CCSID 1208. The data will be written to the log file in binary.
|
||
Therefore, the customer's data will be written to the ScriptLog without conversion.
|
||
Information from the CGI request will not need to be translated, as the data
|
||
will already be in the defaultFSCCSID. </p>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="scriptlogbuffer"><a name="scriptlogbuffer"><!-- --></a><h2 class="topictitle2">ScriptLogBuffer</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ScriptLogBuffer <var class="varname">size</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: ScriptLogBuffer 1024</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: Apache</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ScriptLogBuffer 512</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The ScriptLogBuffer directive limits the size of any PUT or POST entity
|
||
body that is logged to the file. This prevents the log file from growing too
|
||
big too quickly (the case if large bodies are being received). </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>size</em></dt>
|
||
<dd><ul><li>The <var class="varname">size</var> parameter is measured in bytes and consists
|
||
of any positive integer. By default, up to 1024 bytes are logged, but the
|
||
value can be changed with this directive. </li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="scriptloglength"><a name="scriptloglength"><!-- --></a><h2 class="topictitle2">ScriptLogLength</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ScriptLogLength <var class="varname">size</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: ScriptLogLength 10385760</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ScriptLogLength 1024000</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The ScriptLogLength directive can be used to limit the size in bytes of
|
||
the Common Gateway Interface (CGI) script log file. Since the log file logs
|
||
a significant amount of information per CGI error (all request headers, all
|
||
script output) it can grow to be quite large. To prevent problems due to unbounded
|
||
growth, this directive can be used to set a maximum file-size for the CGI
|
||
logfile. If the file exceeds this size, no more information will be written
|
||
to it. </p>
|
||
<blockquote><dl><dt class="dlterm"><strong>Parameter</strong>: <em>size</em></dt>
|
||
<dd><ul><li>The <var class="varname">size</var> parameter is measured in bytes. This is any
|
||
positive number. </li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="startcgi"><a name="startcgi"><!-- --></a><h2 class="topictitle2">StartCGI</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: StartCGI <var class="varname">number userid</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: StartCGI 5 USER1 </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The StartCGI directive specifies the number of CGI jobs that are spawned
|
||
by the server when it starts up and the iSeries user profile to use in these
|
||
jobs. This allows you to have the server prestart CGI jobs when the server
|
||
starts so the users do not incur the performance hit of starting a new job.
|
||
It also allows you to start up jobs for different user profiles. The userid
|
||
is optional and should only be used to protect your CGI programs so that they
|
||
run under the %%CLIENT%% profile or under a dummy iSeries profile (a profile
|
||
with no password). </p>
|
||
<p>The cumulative number from all occurrences of this directive cannot exceed
|
||
MaxCGIJobs, if it does, the server will not start. If the user profile parameter
|
||
is not specified, the default server profile (QTMHHTP1) or the value from
|
||
the global ServerUserID directive is used. </p>
|
||
<p>If you are using %%CLIENT%% as the profile in the protection of the CGI
|
||
programs (meaning that each user authenticates with an iSeries user profile),
|
||
then it should be noted that %%CLIENT%% is not a valid value on this directive.
|
||
Using iSeries profiles like this should only be done in an intranet or highly
|
||
secure server because you would not want to give just anyone an iSeries user
|
||
profile. Therefore, you would know how many users and also their user profile
|
||
name, thus you would need to decide how many users will be doing CGI requests
|
||
and how many concurrent CGI requests you want each user to be able to do.
|
||
Then you could specify multiple StartCGI directives, one for each user, specifying
|
||
the number of concurrent CGI requests you expect that user to do. </p>
|
||
<div class="note"><span class="notetitle">Note:</span> This will NOT limit the number of concurrent CGI requests. This will
|
||
simply allow CGI jobs to be started at server startup time so the user does
|
||
not have to incur the performance hit of starting up a new job when they run
|
||
their first CGI program. </div>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="startthreadedcgi"><a name="startthreadedcgi"><!-- --></a><h2 class="topictitle2">StartThreadedCGI</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: StartThreadedCGI <var class="varname">number userid</var> </td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server config</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: StartThreadedCGI 3</td>
|
||
</tr>
|
||
<tr><td colspan="2" valign="top"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: StartThreadedCGI 5 USER1 </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>The Start ThreadedCGI directive specifies the number of multiple thread
|
||
capable CGI jobs that are spawned by the server when it starts up and the
|
||
iSeries user profile to use in these jobs. This allows you to have the server
|
||
prestart CGI jobs when the server starts so the users do not incur the performance
|
||
hit of starting a new job. It also allows you to start up jobs for different
|
||
user profiles. The userid is optional and should only be used to protect your
|
||
multiple thread capable CGI programs so that they run under the %%CLIENT%%
|
||
profile or under a dummy iSeries profile (a profile with no password).</p>
|
||
<p>The cumulative number from all occurrences of this directive cannot exceed
|
||
MaxThreadedCGIJobs, if it does, the server will not start. If the user profile
|
||
parameter is not specified, the default server profile (QTMHHTP1) or the value
|
||
from the global ServerUserID directive is used.</p>
|
||
<p>If you are using %%CLIENT%% as the profile in the protection of the multiple
|
||
thread capable CGI programs (meaning that each user authenticates with an
|
||
iSeries user profile), then it should be noted that %%CLIENT%% is not a valid
|
||
value on this directive. Using iSeries profiles like this should only be done
|
||
in an intranet or highly secure server because you would not want to give
|
||
just anyone an iSeries user profile. Therefore, you would know how many users
|
||
and also their user profile name, thus you would need to decide how many users
|
||
will be doing CGI requests and how many concurrent multiple thread capable
|
||
CGI requests you want each user to be able to do. Then you could specify multiple
|
||
StartThreadedCGI directives, one for each user, specifying the number of concurrent
|
||
multiple thread capable CGI requests you expect that user to do.</p>
|
||
<div class="note"><span class="notetitle">Note:</span> This will NOT limit the number of concurrent multiple thread capable
|
||
CGI requests. This will simply allow multiple thread capable CGI jobs to be
|
||
started at server startup time so the user does not have to incur the performance
|
||
hit of starting up a new job when they run their first multiple thread capable
|
||
CGI program. </div>
|
||
</div>
|
||
</div>
|
||
<div class="hr" id="threadedcgiinitialurl"><a name="threadedcgiinitialurl"><!-- --></a><h2 class="topictitle2">ThreadedCgiInitialUrl</h2>
|
||
<div>
|
||
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="void" border="0" rules="none"><tbody><tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Module">Module</a></strong>: mod_cgi</td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Syntax">Syntax</a></strong>: ThreadedCgiInitialUrl <var class="varname">url userid</var></td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Default">Default</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Context">Context</a></strong>: server</td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Override">Override</a></strong>: none</td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Origin">Origin</a></strong>: iSeries</td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ThreadedCgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm
|
||
QTMHHTTP</td>
|
||
</tr>
|
||
<tr><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ThreadedCgiInitialUrl /QOpenSys/mypacedir/pacecgi</td>
|
||
</tr>
|
||
<tr valign="top"><td valign="top" width="100%"><strong><a href="rzaiedirective-dict.htm#rzaiedirective-dict__Example">Example</a></strong>: ThreadedCgiInitialUrl /qsys.lib/cgi.lib/mycgi.pgm?init=yes
|
||
USER1</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<p>This directive is used to load and initialize threaded CGI programs when
|
||
the server starts. At server startup, when processing the StartThreadedCgi
|
||
directive, jobs are started to run CGI programs in. This directive enables
|
||
the server to run a CGI request to the CGI job enabling the CGI program to
|
||
be loaded and initialized. This function enables performance issues to be
|
||
moved to when the server starts, so the first user does not have diminished
|
||
performance.</p>
|
||
<p>If there are no StartThreadedCgi directives, an error is posted and the
|
||
server does not start.</p>
|
||
</div>
|
||
</div>
|
||
|
||
</body>
|
||
</html> |