blob: 4b4a8a2bb679d4a00af9de61418f37a0bccf9f8b [file] [log] [blame]
Hongqing Liu71898292014-10-15 13:31:32 +08001<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 6.0 (6.0.41) - CGI How To</title><meta name="author" content="Glenn L. Nielsen"><style type="text/css" media="print">
Hongqing Liufd5ee812014-05-10 16:32:51 +08002 .noPrint {display: none;}
3 td#mainBody {width: 100%;}
4 </style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="./images/tomcat.gif" align="right" alt="
5 The Apache Tomcat Servlet/JSP Container
Hongqing Liu71898292014-10-15 13:31:32 +08006 " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.41, May 19 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="./images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="index.html">Docs Home</a></li><li><a href="http://wiki.apache.org/tomcat/FAQ">FAQ</a></li></ul><p><strong>User Guide</strong></p><ul><li><a href="introduction.html">1) Introduction</a></li><li><a href="setup.html">2) Setup</a></li><li><a href="appdev/index.html">3) First webapp</a></li><li><a href="deployer-howto.html">4) Deployer</a></li><li><a href="manager-howto.html">5) Manager</a></li><li><a href="realm-howto.html">6) Realms and AAA</a></li><li><a href="security-manager-howto.html">7) Security Manager</a></li><li><a href="jndi-resources-howto.html">8) JNDI Resources</a></li><li><a href="jndi-datasource-examples-howto.html">9) JDBC DataSources</a></li><li><a href="class-loader-howto.html">10) Classloading</a></li><li><a href="jasper-howto.html">11) JSPs</a></li><li><a href="ssl-howto.html">12) SSL</a></li><li><a href="ssi-howto.html">13) SSI</a></li><li><a href="cgi-howto.html">14) CGI</a></li><li><a href="proxy-howto.html">15) Proxy Support</a></li><li><a href="mbeans-descriptor-howto.html">16) MBean Descriptor</a></li><li><a href="default-servlet.html">17) Default Servlet</a></li><li><a href="cluster-howto.html">18) Clustering</a></li><li><a href="balancer-howto.html">19) Load Balancer</a></li><li><a href="connectors.html">20) Connectors</a></li><li><a href="monitoring.html">21) Monitoring and Management</a></li><li><a href="logging.html">22) Logging</a></li><li><a href="apr.html">23) APR/Native</a></li><li><a href="virtual-hosting-howto.html">24) Virtual Hosting</a></li><li><a href="aio.html">25) Advanced IO</a></li><li><a href="extras.html">26) Additional Components</a></li><li><a href="maven-jars.html">27) Mavenized</a></li></ul><p><strong>Reference</strong></p><ul><li><a href="RELEASE-NOTES.txt">Release Notes</a></li><li><a href="config/index.html">Configuration</a></li><li><a href="api/index.html">Javadocs</a></li><li><a href="http://tomcat.apache.org/connectors-doc/">JK 1.2 Documentation</a></li></ul><p><strong>Apache Tomcat Development</strong></p><ul><li><a href="building.html">Building</a></li><li><a href="changelog.html">Changelog</a></li><li><a href="http://wiki.apache.org/tomcat/TomcatVersions">Status</a></li><li><a href="developers.html">Developers</a></li><li><a href="architecture/index.html">Architecture</a></li><li><a href="funcspecs/index.html">Functional Specs.</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat 6.0</h1><h2>CGI How To</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Table of Contents"><!--()--></a><a name="Table_of_Contents"><strong>Table of Contents</strong></a></font></td></tr><tr><td><blockquote>
Hongqing Liufd5ee812014-05-10 16:32:51 +08007<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Installation">Installation</a></li><li><a href="#Configuration">Configuration</a></li></ul>
8</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
9
10<p>The CGI (Common Gateway Interface) defines a way for a web server to
11interact with external content-generating programs, which are often
12referred to as CGI programs or CGI scripts.
13</p>
14
15<p>Within Tomcat, CGI support can be added when you are using Tomcat as your
16HTTP server and require CGI support. Typically this is done
17during development when you don't want to run a web server like
18Apache httpd.
19Tomcat's CGI support is largely compatible with Apache httpd's,
20but there are some limitations (e.g., only one cgi-bin directory).
21</p>
22
23<p>CGI support is implemented using the servlet class
24<code>org.apache.catalina.servlets.CGIServlet</code>. Traditionally,
25this servlet is mapped to the URL pattern "/cgi-bin/*".</p>
26
27<p>By default CGI support is disabled in Tomcat.</p>
28</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Installation"><strong>Installation</strong></a></font></td></tr><tr><td><blockquote>
29
30<p><strong>CAUTION</strong> - CGI scripts are used to execute programs
31external to the Tomcat JVM. If you are using the Java SecurityManager this
32will bypass your security policy configuration in <code>catalina.policy.</code></p>
33
34<p>Remove the XML comments from around the CGI servlet and servlet-mapping
35configuration in <code>$CATALINA_BASE/conf/web.xml</code>.</p>
36
37<p>Only Contexts which are marked as privileged may use the CGI servlet (see the
38privileged property of the Context element).</p>
39
40</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Configuration"><strong>Configuration</strong></a></font></td></tr><tr><td><blockquote>
41
42<p>There are several servlet init parameters which can be used to
43configure the behaviour of the CGI servlet.
44<ul>
45<li><strong>cgiPathPrefix</strong> - The CGI search path will start at
46the web application root directory + File.separator + this prefix.
47The default cgiPathPrefix is <code>WEB-INF/cgi</code></li>
48<li><strong>debug</strong> - Debugging detail level for messages logged
49by this servlet. Default 0.</li>
50<li><strong>executable</strong> - The of the executable to be used to
51run the script. You may explicitly set this parameter to be an empty string
52if your script is itself executable (e.g. an exe file). Default is
53<code>perl</code>.</li>
54<li><strong>executable-arg-1</strong>, <strong>executable-arg-2</strong>,
55and so on - additional arguments for the executable. These precede the
56CGI script name. By default there are no additional arguments.</li>
57<li><strong>parameterEncoding</strong> - Name of the parameter encoding
58to be used with the CGI servlet. Default is
59<code>System.getProperty("file.encoding","UTF-8")</code>.</li>
60<li><strong>passShellEnvironment</strong> - Should the shell environment
61variables (if any) be passed to the CGI script? Default is
62<code>false</code>.</li>
63<li><strong>stderrTimeout</strong> - The time (in milliseconds) to wait for
64the reading of stderr to complete before terminating the CGI process. Default
65is 2000.</li>
66</ul>
67</p>
68
69</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
70 Copyright &copy; 1999-2014, Apache Software Foundation
71 </em></font></div></td></tr></table></body></html>