Tomcat Installation¶
Installing Java¶
We’ll need a JDK to run GeoServer.
You may already have the OpenJDK package (java-1.7.0-openjdk-devel.x86_64
) installed.
Check and see if Java is already installed:
# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-b10)
OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
# javac -version
javac 1.8.0_171
If it is not, check for available versions:
yum list *openjdk*
You’ll get a list like this one, probably with versions 1.6.0, 1.7.0, 1.8.0:
[...]
java-1.6.0-openjdk.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.6.0-openjdk-demo.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.6.0-openjdk-devel.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.6.0-openjdk-src.x86_64 1:1.6.0.41-1.13.13.1.el7_3 base
java-1.7.0-openjdk.x86_64 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.7.0-openjdk-accessibility.x86_64 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.7.0-openjdk-demo.x86_64 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.7.0-openjdk-devel.x86_64 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.7.0-openjdk-headless.x86_64 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.7.0-openjdk-src.x86_64 1:1.7.0.181-2.6.14.8.el7_5 updates
java-1.8.0-openjdk.x86_64 1:1.8.0.171-8.b10.el7_5 @updates
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.171-8.b10.el7_5 @updates
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.171-8.b10.el7_5 @updates
[...]
Go for the version 1.8.0:
yum install java-1.8.0-openjdk-devel
Once done, the command java -version
should return info about the installed version.
Oracle JDK¶
Until recently, the Oracle JDK was a better performer than the OpenJDK, so it was the preferred choice. This is no longer true, anyway in the following paragraph you can find instruction about how to install the Oracle JDK.
You can download the Oracle JDK RPM from this page:
Oracle does not expose a URL to automatically dowload the JDK because an interactive licence acceptance is requested. You may start downloading the JDK RPM from a browser, and then either:
- stop the download from the browser and use on the server the dynamic download URL your browser has been assigned, or
- finish the download and transfer the JDK RPM to the server using
scp
.
Once you have the .rpm
file, you can install it by:
rpm -ivh jdk-7u51-linux-x64.rpm
Once installed, you still see that the default java
and javac
commands
are still the ones from OpenJDK.
In order to switch JDK version you have to set the proper system alternatives.
You may want to refer to this page . Issue the command:
alternatives --install /usr/bin/java java /usr/java/latest/bin/java 200000 \
--slave /usr/lib/jvm/jre jre /usr/java/latest/jre \
--slave /usr/lib/jvm-exports/jre jre_exports /usr/java/latest/jre/lib \
--slave /usr/bin/keytool keytool /usr/java/latest/jre/bin/keytool \
--slave /usr/bin/orbd orbd /usr/java/latest/jre/bin/orbd \
--slave /usr/bin/pack200 pack200 /usr/java/latest/jre/bin/pack200 \
--slave /usr/bin/rmid rmid /usr/java/latest/jre/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/latest/jre/bin/rmiregistry \
--slave /usr/bin/servertool servertool /usr/java/latest/jre/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/java/latest/jre/bin/tnameserv \
--slave /usr/bin/unpack200 unpack200 /usr/java/latest/jre/bin/unpack200 \
--slave /usr/share/man/man1/java.1 java.1 /usr/java/latest/man/man1/java.1 \
--slave /usr/share/man/man1/keytool.1 keytool.1 /usr/java/latest/man/man1/keytool.1 \
--slave /usr/share/man/man1/orbd.1 orbd.1 /usr/java/latest/man/man1/orbd.1 \
--slave /usr/share/man/man1/pack200.1 pack200.1 /usr/java/latest/man/man1/pack200.1 \
--slave /usr/share/man/man1/rmid.1.gz rmid.1 /usr/java/latest/man/man1/rmid.1 \
--slave /usr/share/man/man1/rmiregistry.1 rmiregistry.1 /usr/java/latest/man/man1/rmiregistry.1 \
--slave /usr/share/man/man1/servertool.1 servertool.1 /usr/java/latest/man/man1/servertool.1 \
--slave /usr/share/man/man1/tnameserv.1 tnameserv.1 /usr/java/latest/man/man1/tnameserv.1 \
--slave /usr/share/man/man1/unpack200.1 unpack200.1 /usr/java/latest/man/man1/unpack200.1
Then run
alternatives --config java
and select the number related to /usr/java/latest/bin/java
.
Now the default java version should be the Oracle one. Verify the proper installation on the JDK:
# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
# javac -version
javac 1.7.0_51
Installing Tomcat¶
Create tomcat user¶
adduser -m -s /bin/bash tomcat
passwd tomcat
Tomcat¶
Let’s download and install Tomcat first:
wget http://it.apache.contactlab.it/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz
tar xzvf apache-tomcat-8.5.32.tar.gz
mv apache-tomcat-8.5.32 /opt
ln -s /opt/apache-tomcat-8.5.32 /opt/tomcat
Then prepare a clean instance called base
to be used as a template
for all tomcat instances:
mkdir -p /var/lib/tomcat/base/{bin,conf,logs,temp,webapps,work}
cp -r /opt/tomcat/conf/* /var/lib/tomcat/base/conf
And fix the permissions on the files:
chown -R tomcat:tomcat /opt/apache*
chown -R tomcat:tomcat /var/lib/tomcat
Instance manager script¶
To manage our Tomcat instances create the file /etc/systemd/system/tomcat\@.service
with the following content:
[Unit]
Description=Tomcat %I
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=CATALINA_PID=/var/run/tomcat/%i.pid
#Environment=TOMCAT_JAVA_HOME=/usr/java/default
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/var/lib/tomcat/%i
Environment=CATALINA_OPTS=
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
#ExecStop=/bin/kill -15 $MAINPID
[Install]
WantedBy=multi-user.target
Then make it executable:
chmod +x /etc/systemd/system/tomcat\@.service