Apache Tomcat 10.1.48 Installation

Create Tomcat user account (Linux)

1
2
# useradd tomcat
# passwd tomcat

Java 11

1
2
3
4
5
6
7
8
9
# tar xzvf openjdk-11.0.2_linux-x64_bin.tar.gz
# mv jdk-11.0.2 /opt/
# chown -fR tomcat:tomcat /opt/jdk-11.0.2

Verify Java
# /opt/jdk-11.0.2/bin/java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Apache Tomcat 10.1.48

1
2
3
4
# unzip apache-tomcat-10.1.48.zip
# mv /tmp/apache-tomcat-10.1.48 /opt
# chown -fR tomcat:tomcat /opt/apache-tomcat-10.1.48
# chmod -fR u+x /opt/apache-tomcat-10.1.48/bin

Create systemd service for tomcat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[/etc/systemd/system/tomcat.service]
[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/opt/jdk-11.0.2"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/shutdown.sh

RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Create tomcat user

1
2
3
4
5
6
7
8
9
10
/opt/apache-tomcat-10.1.48/conf/tomcat-users.xml
...
<!-- user manager can access only manager section -->
<role rolename="manager-gui" />
<user username="manager" password="password" roles="manager-gui" />

<!-- user admin can access manager and admin section both -->
<role rolename="admin-gui" />
<user username="admin" password="password" roles="manager-gui,admin-gui" />
...

Enable remote access tomcat

1
2
3
4
5
6
7
8
9
10
11
[/opt/apache-tomcat-10.1.48/webapps/manager/META-INF/context.xml]
..
<!-- <Valve className="org.apache.catalina.valves.RemoteCIDRValve"
allow="127.0.0.0/8,::1/128" /> -->
..

[/opt/apache-tomcat-10.1.48/webapps/host-manager/META-INF/context.xml]
..
<!-- <Valve className="org.apache.catalina.valves.RemoteCIDRValve"
allow="127.0.0.0/8,::1/128" /> -->
..

Change default port 8080 to 8081

1
2
3
4
5
6
7
8
[/opt/apache-tomcat-10.1.48/conf/server.xml]
...
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
...

Stop / Start tomcat service, using systemctl

1
2
# systemctl daemon-reload
# systemctl enable tomcat --now