- 아파치 소프트웨어 재단에서 개발하는 Java 기반의 서블릿 컨테이너이자 웹 서버.
# 설치하려는 tomcat의 버전과, 운영하려는 어플리케이션에 맞는 java를 설치해야한다.
sudo dnf install -y java-11-openjdk java-11-openjdk-devel java-11-openjdk-headless
# alternatives. 단일 버전의 java만 존재한다면 수행할 필요 없다.
alternatives --config java
alternatives --config jre_openjdk
alternatives --config java_sdk_openjdk
# 계정생성
groupadd -g 1000 tomcat
useradd -g 1000 -u 1000 -m -d /home/tomcat tomcat
# 환경변수 설정
# /home/$TOMCAT_USER_HOME/.bashrc 또는 .bash_profile에 추가한다.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-3.el8.x86_64
export TOMCAT_HOME=/opt/tomcat
export CATALINA_HOME=$TOMCAT_HOME
export CATALINA_BASE=$CATALINA_BASE
export PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH
# directory 생성
# mkdir /opt/apps
mkdir /var/log/tomcat
chown -R tomcat:tomcat /var/log/tomcat
curl -L -O https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.111/bin/apache-tomcat-9.0.111.tar.gz
tar -xvzf apache-tomcat-9.0.111.tar.gz
mv apache-tomcat-9.0.111 /opt/apps/
ln -s /opt/apps/apache-tomcat-9.0.111 /opt/tomcat
chown -R tomcat:tomcat /opt/apps/apache-tomcat-9.0.111 /opt/tomcat
- 실행 관련 설정
$TOMCAT_HOME/bin/catalina.sh
# 변수 관련 부문을 수정한다.
...
CATALINA_HOME=/opt/tomcat
CATALINA_BASE=/opt/tomcat
CATALINA_OUT="/var/log/tomcat/catalina.out"
# CATALINA_OUT_CMD (Optional) Command which will be executed and receive
# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# CATALINA_TMPDIR (Optional) Directory path location of temporary directory
JAVA_HOME= /lib/jvm/java-11-openjdk-11.0.25.0.9-7.el9.x86_64
# JRE_HOME Must point at your Java Runtime installation.
# JAVA_OPTS (Optional) Java runtime options used when any command
...
- 로깅 관련 설정
$TOMCAT_HOME/conf/logging.properties
...
1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
2localhost.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
3manager.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
4host-manager.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
...
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
- 포트 변경 등 서버 관련 설정
$TOMCAT_HOME/conf/server.xml
cp guacamole.war $TOMCAT_HOME/webapps/
$TOMCAT_HOME/bin/catalina.sh run
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /lib/jvm/java-11-openjdk
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
17-Oct-2025 18:03:54.626 정보 [main] org.apache.catalina.startup.VersionLoggerListener.log 서버 버전 이름: Apache Tomcat/9.0.111
17-Oct-2025 18:03:54.633 정보 [main] org.apache.catalina.startup.VersionLoggerListener.log Server 빌드 시각: Oct 10 2025 14:13:20 UTC
17-Oct-2025 18:03:54.633 정보 [main] org.apache.catalina.startup.VersionLoggerListener.log Server 버전 번호: 9.0.111.0
./startup.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /lib/jvm/java-11-openjdk
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
