How to Install Apache Tomcat 8 On Debian
In this tutorial, we will show you how to install Apache Tomcat 8 On Debian, manually.
Environment :
- Debian 7
- JDK 1.8
- Apache Tomcat 8
P.S Assume the JDK 1.8 is installed in /opt/jdk folder. Refer to this guide to install Oracle JDK 8 on Debian.
On Debian 7, the Tomcat 8 is not included in the default apt-get repository.
This guide should work in other Debian derivatives like Ubuntu or Mint.
1. Get Tomcat 8
1.1 Visit Tomcat 8 page and download the tar.gz file.
1.2 In this example, we get the version 8.0.30 via wget command.
$ cd /opt $ sudo wget http://www.eu.apache.org/dist/tomcat/tomcat-8/v8.0.30/bin/apache-tomcat-8.0.30.tar.gz
2. Extracts to /opt/tomcat8
2.1 Extracts it to path /opt/tomcat8
$ pwd /opt $ sudo tar -xvzf apache-tomcat-8.0.30.tar.gz $ mv apache-tomcat-8.0.30 tomcat8 $ ls -lsh 4.0K drwxr-xr-x 6 root root 4.0K Dec 27 09:16 . 4.0K drwxr-xr-x 23 root root 4.0K Feb 26 2014 .. 8.8M -rw-r--r-- 1 root root 8.8M Dec 1 17:56 apache-tomcat-8.0.30.tar.gz 4.0K drwxr-xr-x 3 root root 4.0K Dec 27 09:06 jdk 4.0K drwxr-xr-x 9 root root 4.0K Dec 27 09:16 tomcat8
3. Create a Tomcat user
3.1 Review the extracted tomcat8 folder, which is belonging to “root” user. For good practice, we should create a new user to run the Tomcat. In this example, we will create a non-login user “tomcat”, and set his home to /opt/tomcat/temp (anywhere you want).
#Usage : useradd -s <login shell> -d <home-dir> <user> $ sudo useradd -s /sbin/nologin -d /opt/tomcat/temp tomcat
3.2 Change permissions of the /opt/tomcat8 folder, so that the new “tomcat” user can run the Tomcat.
$ sudo chown -R tomcat:tomcat /opt/tomcat8 $ pwd /opt $ls -lsh 8.8M -rw-r--r-- 1 root root 8.8M Dec 1 17:56 apache-tomcat-8.0.30.tar.gz 4.0K drwxr-xr-x 3 root root 4.0K Dec 27 09:06 jdk 4.0K drwxr-xr-x 9 tomcat tomcat 4.0K Dec 27 09:16 tomcat8
4. /etc/init.d/tomcat8
To run Tomcat as a init service, create a custom script and put it in the /etc/init.d folder.
4.1 Create a script and save it as /etc/init.d/tomcat8
$ sudo vim /etc/init.d/tomcat8
#!/bin/bash #https://wiki.debian.org/LSBInitScripts ### BEGIN INIT INFO # Provides: tomcat8 # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Should-Start: $named # Should-Stop: $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Tomcat. # Description: Start the Tomcat servlet engine. ### END INIT INFO export CATALINA_HOME=/opt/tomcat8 export JAVA_HOME=/opt/jdk/jdk1.8.0_66 export PATH=$JAVA_HOME/bin:$PATH start() { echo "Starting Tomcat 8..." /bin/su -s /bin/bash tomcat -c $CATALINA_HOME/bin/startup.sh stop() { echo "Stopping Tomcat 8..." /bin/su -s /bin/bash tomcat -c $CATALINA_HOME/bin/shutdown.sh case $1 in start|stop) $1;; restart) stop; start;; *) echo "Usage : $0 <start|stop|restart>"; exit 1;; esac exit 0
This simple Tomcat init script is running in one of my servers, and I believe it is enough to control the Tomcat. If you are looking for more advanced features, try visiting this Tomcat init script
4.2 Assign “execute” permission.
$ sudo chmod 755 /etc/init.d/tomcat8 #Review permission $ ls -lsh /etc/init.d/tomcat8 4.0K -rwxr-xr-x 1 root root 859 Dec 27 22:07 /etc/init.d/tomcat8
4.3 Install the script.
$ sudo update-rc.d tomcat8 defaults
4.4 Test it
$ sudo service tomcat8 Usage : /etc/init.d/tomcat8 <start|stop|restart> #Start Tomcat... $ sudo service tomcat8 start Starting Tomcat 8... Using CATALINA_BASE: /opt/tomcat8 Using CATALINA_HOME: /opt/tomcat8 Using CATALINA_TMPDIR: /opt/tomcat8/temp Using JRE_HOME: /opt/jdk/jdk1.8.0_66 Using CLASSPATH: /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar Tomcat started. #Stop Tomcat... $ sudo service tomcat8 stop Stopping Tomcat 8... Using CATALINA_BASE: /opt/tomcat8 Using CATALINA_HOME: /opt/tomcat8 Using CATALINA_TMPDIR: /opt/tomcat8/temp Using JRE_HOME: /opt/jdk/jdk1.8.0_66 Using CLASSPATH: /opt/tomcat8/bin/bootstrap.jar:/opt/tomcat8/bin/tomcat-juli.jar
Visit Tomcat default URL : http://localhost:8080
Done.
6. Extras…
6.1 To deploy a WAR file, just copy the WAR file in the /opt/tomcat8/webapps/ folder. Restart Tomcat, the war file will be extracted and deployed automatically.
- Example – /opt/tomcat8/webapps/lovejava.war
- Deployed URL – http://localhost:8080/lovejava
6.2 To change the default port (8080), just update the connector port to another port number and restart Tomcat.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
6.3 Make the web app as the default path.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- update here --> <Context path="" docBase="lovejava"> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> </Context> </Host>
- Before : http://localhost:8080/lovejava
- After : http://localhost:8080/
Now, we can access the /lovejava web app via this URL http://localhost:8080/
References
- Tomcat 8 download page
- Install Tomcat on Ubuntu
- Apache Tomcat On Linux – Installation and Configuration On Multiple Platforms
From:一号门
COMMENTS