blob: 5f72aade511fd0407974893ba6c166aff35dbc69 [file] [log] [blame]
刘洪青6266f992017-05-15 21:21:03 +08001<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 7 (7.0.77) - Tomcat Setup</title><meta name="author" content="Remy Maucherat"><style type="text/css" media="print">
2 .noPrint {display: none;}
3 td#mainBody {width: 100%;}
4</style><style type="text/css">
5code {background-color:rgb(224,255,255);padding:0 0.1em;}
6code.attributeName, code.propertyName {background-color:transparent;}
7
8
9table {
10 border-collapse: collapse;
11 text-align: left;
12}
13table *:not(table) {
14 /* Prevent border-collapsing for table child elements like <div> */
15 border-collapse: separate;
16}
17
18th {
19 text-align: left;
20}
21
22
23div.codeBox pre code, code.attributeName, code.propertyName, code.noHighlight, .noHighlight code {
24 background-color: transparent;
25}
26div.codeBox {
27 overflow: auto;
28 margin: 1em 0;
29}
30div.codeBox pre {
31 margin: 0;
32 padding: 4px;
33 border: 1px solid #999;
34 border-radius: 5px;
35 background-color: #eff8ff;
36 display: table; /* To prevent <pre>s from taking the complete available width. */
37 /*
38 When it is officially supported, use the following CSS instead of display: table
39 to prevent big <pre>s from exceeding the browser window:
40 max-width: available;
41 width: min-content;
42 */
43}
44
45div.codeBox pre.wrap {
46 white-space: pre-wrap;
47}
48
49
50table.defaultTable tr, table.detail-table tr {
51 border: 1px solid #CCC;
52}
53
54table.defaultTable tr:nth-child(even), table.detail-table tr:nth-child(even) {
55 background-color: #FAFBFF;
56}
57
58table.defaultTable tr:nth-child(odd), table.detail-table tr:nth-child(odd) {
59 background-color: #EEEFFF;
60}
61
62table.defaultTable th, table.detail-table th {
63 background-color: #88b;
64 color: #fff;
65}
66
67table.defaultTable th, table.defaultTable td, table.detail-table th, table.detail-table td {
68 padding: 5px 8px;
69}
70
71
72p.notice {
73 border: 1px solid rgb(255, 0, 0);
74 background-color: rgb(238, 238, 238);
75 color: rgb(0, 51, 102);
76 padding: 0.5em;
77 margin: 1em 2em 1em 1em;
78}
79</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="
Hongqing Liufd5ee812014-05-10 16:32:51 +080080 The Apache Tomcat Servlet/JSP Container
刘洪青6266f992017-05-15 21:21:03 +080081 " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 7</font></h1><font face="arial,helvetica,sanserif">Version 7.0.77, Mar 28 2017</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="./images/asf-logo.svg" align="right" alt="Apache Logo" border="0" style="width: 266px;height: 83px;"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" 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><li><a href="#comments_section">User Comments</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/TLS</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-descriptors-howto.html">16) MBeans Descriptors</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><li><a href="security-howto.html">28) Security Considerations</a></li><li><a href="windows-service-howto.html">29) Windows Service</a></li><li><a href="windows-auth-howto.html">30) Windows Authentication</a></li><li><a href="jdbc-pool.html">31) Tomcat's JDBC Pool</a></li><li><a href="web-socket-howto.html">32) WebSocket</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">Tomcat Javadocs</a></li><li><a href="servletapi/index.html">Servlet Javadocs</a></li><li><a href="jspapi/index.html">JSP 2.2 Javadocs</a></li><li><a href="elapi/index.html">EL 2.2 Javadocs</a></li><li><a href="websocketapi/index.html">WebSocket 1.1 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><li><a href="tribes/introduction.html">Tribes</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Tomcat Setup</h1><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 +080082<ul><li><a href="#Introduction">Introduction</a></li><li><a href="#Windows">Windows</a></li><li><a href="#Unix_daemon">Unix daemon</a></li></ul>
83</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>
84 <p>
85 There are several ways to set up Tomcat for running on different
86 platforms. The main documentation for this is a file called
87 <a href="RUNNING.txt">RUNNING.txt</a>. We encourage you to refer to that
88 file if the information below does not answer some of your questions.
89 </p>
90 </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Windows"><strong>Windows</strong></a></font></td></tr><tr><td><blockquote>
91
92 <p>
刘洪青6266f992017-05-15 21:21:03 +080093 Installing Tomcat on Windows can be done easily using the Windows
Hongqing Liufd5ee812014-05-10 16:32:51 +080094 installer. Its interface and functionality is similar to other wizard
95 based installers, with only a few items of interest.
96 </p>
97
98 <p>
99 <ul>
刘洪青6266f992017-05-15 21:21:03 +0800100 <li><strong>Installation as a service</strong>: Tomcat will be
Hongqing Liufd5ee812014-05-10 16:32:51 +0800101 installed as a Windows service no matter what setting is selected.
102 Using the checkbox on the component page sets the service as "auto"
103 startup, so that Tomcat is automatically started when Windows
104 starts. For optimal security, the service should be run as a
105 separate user, with reduced permissions (see the Windows Services
106 administration tool and its documentation).</li>
107 <li><strong>Java location</strong>: The installer will provide a default
108 JRE to use to run the service. The installer uses the registry to
刘洪青6266f992017-05-15 21:21:03 +0800109 determine the base path of a Java 6 or later JRE, including the JRE
Hongqing Liufd5ee812014-05-10 16:32:51 +0800110 installed as part of the full JDK. When running on a 64-bit
111 operating system, the installer will first look for a 64-bit JRE and
112 only look for a 32-bit JRE if a 64-bit JRE is not found. It is not
113 mandatory to use the default JRE detected by the installer. Any
刘洪青6266f992017-05-15 21:21:03 +0800114 installed Java 6 or later JRE (32-bit or 64-bit) may be used.</li>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800115 <li><strong>Tray icon</strong>: When Tomcat is run as a service, there
116 will not be any tray icon present when Tomcat is running. Note that
117 when choosing to run Tomcat at the end of installation, the tray
118 icon will be used even if Tomcat was installed as a service.</li>
119 <li>Refer to the
120 <a href="windows-service-howto.html">Windows Service HOW-TO</a>
121 for information on how to manage Tomcat as a Windows service.
刘洪青6266f992017-05-15 21:21:03 +0800122 </li>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800123 </ul>
124 </p>
125
刘洪青6266f992017-05-15 21:21:03 +0800126 <p>The installer will create shortcuts allowing starting and configuring
127 Tomcat. It is important to note that the Tomcat administration web
Hongqing Liufd5ee812014-05-10 16:32:51 +0800128 application can only be used when Tomcat is running.</p>
129
130 </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Unix daemon"><!--()--></a><a name="Unix_daemon"><strong>Unix daemon</strong></a></font></td></tr><tr><td><blockquote>
131
刘洪青6266f992017-05-15 21:21:03 +0800132 <p>Tomcat can be run as a daemon using the jsvc tool from the
Hongqing Liufd5ee812014-05-10 16:32:51 +0800133 commons-daemon project. Source tarballs for jsvc are included with the
134 Tomcat binaries, and need to be compiled. Building jsvc requires
135 a C ANSI compiler (such as GCC), GNU Autoconf, and a JDK.</p>
136
137 <p>Before running the script, the <code>JAVA_HOME</code> environment
138 variable should be set to the base path of the JDK. Alternately, when
139 calling the <code>./configure</code> script, the path of the JDK may
140 be specified using the <code>--with-java</code> parameter, such as
141 <code>./configure --with-java=/usr/java</code>.</p>
142
143 <p>Using the following commands should result in a compiled jsvc binary,
144 located in the <code>$CATALINA_HOME/bin</code> folder. This assumes
刘洪青6266f992017-05-15 21:21:03 +0800145 that GNU TAR is used, and that <code>CATALINA_HOME</code> is an
146 environment variable pointing to the base path of the Tomcat
Hongqing Liufd5ee812014-05-10 16:32:51 +0800147 installation.</p>
刘洪青6266f992017-05-15 21:21:03 +0800148
Hongqing Liufd5ee812014-05-10 16:32:51 +0800149 <p>Please note that you should use the GNU make (gmake) instead of
150 the native BSD make on FreeBSD systems.</p>
151
刘洪青6266f992017-05-15 21:21:03 +0800152<div class="codeBox"><pre><code>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800153 cd $CATALINA_HOME/bin
154 tar xvfz commons-daemon-native.tar.gz
155 cd commons-daemon-1.0.x-native-src/unix
156 ./configure
157 make
158 cp jsvc ../..
159 cd ../..
刘洪青6266f992017-05-15 21:21:03 +0800160</code></pre></div>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800161
162 <p>Tomcat can then be run as a daemon using the following commands.</p>
163
刘洪青6266f992017-05-15 21:21:03 +0800164<div class="codeBox"><pre><code>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800165 CATALINA_BASE=$CATALINA_HOME
166 cd $CATALINA_HOME
167 ./bin/jsvc \
刘洪青6266f992017-05-15 21:21:03 +0800168 -classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \
Hongqing Liufd5ee812014-05-10 16:32:51 +0800169 -outfile $CATALINA_BASE/logs/catalina.out \
170 -errfile $CATALINA_BASE/logs/catalina.err \
171 -Dcatalina.home=$CATALINA_HOME \
172 -Dcatalina.base=$CATALINA_BASE \
173 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
174 -Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
175 org.apache.catalina.startup.Bootstrap
刘洪青6266f992017-05-15 21:21:03 +0800176</code></pre></div>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800177
刘洪青6266f992017-05-15 21:21:03 +0800178 <p>You may also need to specify <code>-jvm server</code> if the JVM defaults
179 to using a server VM rather than a client VM. This has been observed on
180 OSX.</p>
181
182 <p>jsvc has other useful parameters, such as <code>-user</code> which
Hongqing Liufd5ee812014-05-10 16:32:51 +0800183 causes it to switch to another user after the daemon initialization is
184 complete. This allows, for example, running Tomcat as a non privileged
刘洪青6266f992017-05-15 21:21:03 +0800185 user while still being able to use privileged ports. Note that if you
186 use this option and start Tomcat as root, you'll need to disable the
187 <code>org.apache.catalina.security.SecurityListener</code> check that
188 prevents Tomcat starting when running as root.</p>
189
190 <p><code>jsvc --help</code> will return the full jsvc usage
Hongqing Liufd5ee812014-05-10 16:32:51 +0800191 information. In particular, the <code>-debug</code> option is useful
192 to debug issues running jsvc.</p>
193
194 <p>The file <code>$CATALINA_HOME/bin/daemon.sh</code> can be used as a
195 template for starting Tomcat automatically at boot time from
196 <code>/etc/init.d</code> with jsvc.</p>
197
刘洪青6266f992017-05-15 21:21:03 +0800198 <p>Note that the Commons-Daemon JAR file must be on your runtime classpath
Hongqing Liufd5ee812014-05-10 16:32:51 +0800199 to run Tomcat in this manner. The Commons-Daemon JAR file is in the
200 Class-Path entry of the bootstrap.jar manifest, but if you get a
201 ClassNotFoundException or a NoClassDefFoundError for a Commons-Daemon
202 class, add the Commons-Daemon JAR to the -cp argument when launching
刘洪青6266f992017-05-15 21:21:03 +0800203 jsvc.</p>
Hongqing Liufd5ee812014-05-10 16:32:51 +0800204
刘洪青6266f992017-05-15 21:21:03 +0800205 </blockquote></td></tr></table></td></tr><tr class="noPrint"><td width="20%" valign="top" nowrap class="noPrint"></td><td width="80%" valign="top" align="left"><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="comments_section" id="comments_section"><strong>Comments</strong></a></font></td></tr><tr><td><blockquote><p class="notice"><strong>Notice: </strong>This comments section collects your suggestions
206 on improving documentation for Apache Tomcat.<br><br>
207 If you have trouble and need help, read
208 <a href="http://tomcat.apache.org/findhelp.html">Find Help</a> page
209 and ask your question on the tomcat-users
210 <a href="http://tomcat.apache.org/lists.html">mailing list</a>.
211 Do not ask such questions here. This is not a Q&amp;A section.<br><br>
212 The Apache Comments System is explained <a href="./comments.html">here</a>.
213 Comments may be removed by our moderators if they are either
214 implemented or considered invalid/off-topic.</p><script type="text/javascript"><!--//--><![CDATA[//><!--
215 var comments_shortname = 'tomcat';
216 var comments_identifier = 'http://tomcat.apache.org/tomcat-7.0-doc/setup.html';
217 (function(w, d) {
218 if (w.location.hostname.toLowerCase() == "tomcat.apache.org") {
219 d.write('<div id="comments_thread"><\/div>');
220 var s = d.createElement('script');
221 s.type = 'text/javascript';
222 s.async = true;
223 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
224 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
225 }
226 else {
227 d.write('<div id="comments_thread"><strong>Comments are disabled for this page at the moment.<\/strong><\/div>');
228 }
229 })(window, document);
230 //--><!]]></script></blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
231 Copyright &copy; 1999-2017, Apache Software Foundation
Hongqing Liufd5ee812014-05-10 16:32:51 +0800232 </em></font></div></td></tr></table></body></html>