| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477 | ================================================================================  Licensed to the Apache Software Foundation (ASF) under one or more  contributor license agreements.  See the NOTICE file distributed with  this work for additional information regarding copyright ownership.  The ASF licenses this file to You under the Apache License, Version 2.0  (the "License"); you may not use this file except in compliance with  the License.  You may obtain a copy of the License at      http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing, software  distributed under the License is distributed on an "AS IS" BASIS,  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the specific language governing permissions and  limitations under the License.================================================================================            ===================================================            Running The Apache Tomcat 8.5 Servlet/JSP Container            ===================================================Apache Tomcat 8.5 requires a Java Standard Edition RuntimeEnvironment (JRE) version 7 or later.=============================Running With JRE 7 Or Later=============================(1) Download and Install a Java SE Runtime Environment (JRE)(1.1) Download a Java SE Runtime Environment (JRE),      release version 7 or later, from      http://www.oracle.com/technetwork/java/javase/downloads/index.html(1.2) Install the JRE according to the instructions included with the      release.      You may also use a full Java Development Kit (JDK) rather than just      a JRE.(2) Download and Install Apache Tomcat(2.1) Download a binary distribution of Tomcat from:      https://tomcat.apache.org/(2.2) Unpack the binary distribution so that it resides in its own      directory (conventionally named "apache-tomcat-[version]").      For the purposes of the remainder of this document, the name      "CATALINA_HOME" is used to refer to the full pathname of that      directory.NOTE:  As an alternative to downloading a binary distribution, you cancreate your own from the Tomcat source code, as described in"BUILDING.txt".  You can either  a)  Do the full "release" build and find the created distribution in the      "output/release" directory and then proceed with unpacking as above, or  b)  Do a simple build and use the "output/build" directory as      "CATALINA_HOME".  Be warned that there are some differences between the      contents of the "output/build" directory and a full "release"      distribution.(3) Configure Environment VariablesTomcat is a Java application and does not use environment variables directly.Environment variables are used by the Tomcat startup scripts. The scripts usethe environment variables to prepare the command that starts Tomcat.(3.1) Set CATALINA_HOME (required) and CATALINA_BASE (optional)The CATALINA_HOME environment variable should be set to the location of theroot directory of the "binary" distribution of Tomcat.The Tomcat startup scripts have some logic to set this variableautomatically if it is absent, based on the location of the startup scriptin *nix and on the current directory in Windows. That logic might not workin all circumstances, so setting the variable explicitly is recommended.The CATALINA_BASE environment variable specifies location of the rootdirectory of the "active configuration" of Tomcat. It is optional. Itdefaults to be equal to CATALINA_HOME.Using distinct values for the CATALINA_HOME and CATALINA_BASE variables isrecommended to simplify further upgrades and maintenance. It is documentedin the "Multiple Tomcat Instances" section below.(3.2) Set JRE_HOME or JAVA_HOME (required)These variables are used to specify location of a Java RuntimeEnvironment or of a Java Development Kit that is used to start Tomcat.The JRE_HOME variable is used to specify location of a JRE. The JAVA_HOMEvariable is used to specify location of a JDK.Using JAVA_HOME provides access to certain additional startup options thatare not allowed when JRE_HOME is used.If both JRE_HOME and JAVA_HOME are specified, JRE_HOME is used.The recommended place to specify these variables is a "setenv" script. Seebelow.(3.3) Other variables (optional)Other environment variables exist, besides the four described above.See the comments at the top of catalina.bat or catalina.sh scripts forthe list and a description of each of them.One frequently used variable is CATALINA_OPTS. It allows specification ofadditional options for the java command that starts Tomcat.See the Java documentation for the options that affect the Java RuntimeEnvironment.See the "System Properties" page in the Tomcat Configuration Reference forthe system properties that are specific to Tomcat.A similar variable is JAVA_OPTS. It is used less frequently. It allowsspecification of options that are used both to start and to stop Tomcat as wellas for other commands.Note: Do not use JAVA_OPTS to specify memory limits. You do not need muchmemory for a small process that is used to stop Tomcat. Those settingsbelong to CATALINA_OPTS.Another frequently used variable is CATALINA_PID (on *nix only). Itspecifies the location of the file where process id of the forked Tomcatjava process will be written. This setting is optional. It will enable thefollowing features: *  better protection against duplicate start attempts and *  allows forceful termination of Tomcat process when it does not react to    the standard shutdown command.(3.4) Using the "setenv" script (optional, recommended)Apart from CATALINA_HOME and CATALINA_BASE, all environment variables canbe specified in the "setenv" script. The script is placed either intoCATALINA_BASE/bin or into CATALINA_HOME/bin directory and is namedsetenv.bat (on Windows) or setenv.sh (on *nix). The file has to bereadable.By default the setenv script file is absent. If the script file is presentboth in CATALINA_BASE and in CATALINA_HOME, the one in CATALINA_BASE ispreferred.For example, to configure the JRE_HOME and CATALINA_PID variables you cancreate the following script file:On Windows, %CATALINA_BASE%\bin\setenv.bat:  set "JRE_HOME=%ProgramFiles%\Java\jre7"  exit /b 0On *nix, $CATALINA_BASE/bin/setenv.sh:  JRE_HOME=/usr/java/latest  CATALINA_PID="$CATALINA_BASE/tomcat.pid"The CATALINA_HOME and CATALINA_BASE variables cannot be configured in thesetenv script, because they are used to locate that file.All the environment variables described here and the "setenv" script areused only if you use the standard scripts to launch Tomcat. For example, ifyou have installed Tomcat as a service on Windows, the service wrapperlaunches Java directly and does not use the script files.(4) Start Up Tomcat(4.1) Tomcat can be started by executing one of the following commands:  On Windows:      %CATALINA_HOME%\bin\startup.bat    or      %CATALINA_HOME%\bin\catalina.bat start  On *nix:      $CATALINA_HOME/bin/startup.sh    or      $CATALINA_HOME/bin/catalina.sh start(4.2) After startup, the default web applications included with Tomcat will be      available by visiting:      http://localhost:8080/(4.3) Further information about configuring and running Tomcat can be found in      the documentation included here, as well as on the Tomcat web site:      https://tomcat.apache.org/(5) Shut Down Tomcat(5.1) Tomcat can be shut down by executing one of the following commands:  On Windows:      %CATALINA_HOME%\bin\shutdown.bat    or      %CATALINA_HOME%\bin\catalina.bat stop  On *nix:      $CATALINA_HOME/bin/shutdown.sh    or      $CATALINA_HOME/bin/catalina.sh stop==================================================Advanced Configuration - Multiple Tomcat Instances==================================================In many circumstances, it is desirable to have a single copy of a Tomcatbinary distribution shared among multiple users on the same server.  To makethis possible, you can set the CATALINA_BASE environment variable to thedirectory that contains the files for your 'personal' Tomcat instance.When running with a separate CATALINA_HOME and CATALINA_BASE, the filesand directories are split as following:In CATALINA_BASE: * bin  - Only the following files:           * setenv.sh (*nix) or setenv.bat (Windows),           * tomcat-juli.jar          The setenv scripts were described above. The tomcat-juli library          is documented in the Logging chapter in the User Guide. * conf - Server configuration files (including server.xml) * lib  - Libraries and classes, as explained below * logs - Log and output files * webapps - Automatically loaded web applications * work - Temporary working directories for web applications * temp - Directory used by the JVM for temporary files (java.io.tmpdir)In CATALINA_HOME: * bin  - Startup and shutdown scripts          The following files will be used only if they are absent in          CATALINA_BASE/bin:          setenv.sh (*nix), setenv.bat (Windows), tomcat-juli.jar * lib  - Libraries and classes, as explained below * endorsed - Libraries that override standard "Endorsed Standards"              libraries provided by JRE. See Classloading documentation              in the User Guide for details.              This is only supported for Java <= 8.              By default this "endorsed" directory is absent.In the default configuration the JAR libraries and classes both inCATALINA_BASE/lib and in CATALINA_HOME/lib will be added to the commonclasspath, but the ones in CATALINA_BASE will be added first and thus willbe searched first.The idea is that you may leave the standard Tomcat libraries inCATALINA_HOME/lib and add other ones such as database drivers intoCATALINA_BASE/lib.In general it is advised to never share libraries between web applications,but put them into WEB-INF/lib directories inside the applications. SeeClassloading documentation in the User Guide for details.It might be useful to note that the values of CATALINA_HOME andCATALINA_BASE can be referenced in the XML configuration files processedby Tomcat as ${catalina.home} and ${catalina.base} respectively.For example, the standard manager web application can be kept inCATALINA_HOME/webapps/manager and loaded into CATALINA_BASE by copyingits deployment descriptor into the desired virtual host: * Copy the CATALINA_HOME/webapps/manager/META-INF/context.xml   file as CATALINA_BASE/conf/Catalina/localhost/manager.xml * Add docBase attribute as shown below.The file will look like the following:  <?xml version="1.0" encoding="UTF-8"?>  <Context docBase="${catalina.home}/webapps/manager"    antiResourceLocking="false" privileged="true" >    <Valve className="org.apache.catalina.valves.RemoteAddrValve"         allow="127\.0\.0\.1" />    <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>  </Context>See Deployer chapter in User Guide and Context and Host chapters in theConfiguration Reference for more information on contexts and webapplication deployment.================Troubleshooting================There are only really 2 things likely to go wrong during the stand-aloneTomcat install:(1) The most common hiccup is when another web server (or any process for that    matter) has laid claim to port 8080.  This is the default HTTP port that    Tomcat attempts to bind to at startup.  To change this, open the file:       $CATALINA_HOME/conf/server.xml    and search for '8080'.  Change it to a port that isn't in use, and is    greater than 1024, as ports less than or equal to 1024 require superuser    access to bind under UNIX.    Restart Tomcat and you're in business.  Be sure that you replace the "8080"    in the URL you're using to access Tomcat.  For example, if you change the    port to 1977, you would request the URL http://localhost:1977/ in your    browser.(2) The 'localhost' machine isn't found.  This could happen if you're behind a    proxy.  If that's the case, make sure the proxy configuration for your    browser knows that you shouldn't be going through the proxy to access the    "localhost".    In Firefox, this is under Tools/Preferences -> Advanced/Network ->    Connection -> Settings..., and in Internet Explorer it is Tools ->    Internet Options -> Connections -> LAN Settings.====================Optional Components====================The following optional components may be included with the Apache Tomcat binarydistribution. If they are not included, you can install them separately. 1. Apache Tomcat Native library 2. Apache Commons Daemon service launcherBoth of them are implemented in C language and as such have to be compiledinto binary code. The binary code will be specific for a platform and CPUarchitecture and it must match the Java Runtime Environment executablesthat will be used to launch Tomcat.The Windows-specific binary distributions of Apache Tomcat include binaryfiles for these components. On other platforms you would have to look forbinary versions elsewhere or compile them yourself.If you are new to Tomcat, do not bother with these components to start with.If you do use them, do not forget to read their documentation.Apache Tomcat Native library-----------------------------It is a library that allows to use the "Apr" variant of HTTP and AJPprotocol connectors in Apache Tomcat. It is built around OpenSSL and ApachePortable Runtime (APR) libraries. Those are the same libraries as used byApache HTTPD Server project.This feature was especially important in the old days when Java performancewas poor. It is less important nowadays, but it is still used and respectedby many. See Tomcat documentation for more details.For further reading: - Apache Tomcat documentation    * Documentation for APR/Native library in the Tomcat User's Guide      https://tomcat.apache.org/tomcat-8.5-doc/apr.html    * Documentation for the HTTP and AJP protocol connectors in the Tomcat      Configuration Reference      https://tomcat.apache.org/tomcat-8.5-doc/config/http.html      https://tomcat.apache.org/tomcat-8.5-doc/config/ajp.html - Apache Tomcat Native project home      https://tomcat.apache.org/native-doc/ - Other projects    * OpenSSL      https://www.openssl.org/    * Apache Portable Runtime      https://apr.apache.org/    * Apache HTTP Server      https://httpd.apache.org/To disable Apache Tomcat Native library: - To disable Apache Tomcat Native library when it is installed, or - To remove the warning that is logged during Tomcat startup when the   library is not installed:   Edit the "conf/server.xml" file and remove "AprLifecycleListener" from   it.The binary file of Apache Tomcat Native library is usually named  - "tcnative-1.dll" on Windows  - "libtcnative-1.so" on *nix systemsApache Commons Daemon----------------------Apache Commons Daemon project provides wrappers that can be used toinstall Apache Tomcat as a service on Windows or as a daemon on *nixsystems.The Windows-specific implementation of Apache Commons Daemon is called"procrun". The *nix-specific one is called "jsvc".For further reading: - Apache Commons Daemon project      https://commons.apache.org/daemon/ - Apache Tomcat documentation    * Installing Apache Tomcat      https://tomcat.apache.org/tomcat-8.5-doc/setup.html    * Windows Service How-To      https://tomcat.apache.org/tomcat-8.5-doc/windows-service-howto.htmlThe binary files of Apache Commons Daemon in Apache Tomcat distributionsfor Windows are named:  - "tomcat8.exe"  - "tomcat8w.exe"These files are renamed copies of "prunsrv.exe" and "prunmgr.exe" fromApache Commons Daemon distribution. The file names have a meaning: they areused as the service name to register the service in Windows, as well as thekey name to store distinct configuration for this installation of"procrun". If you would like to install several instances of Tomcat 8.5in parallel, you have to further rename those files, using the same namingscheme.
 |