Linux/CentOS Stream 9

Linux CentOS Stream 9 - Tomcat 설치

Ryan's Tech Note 2023. 2. 16. 01:09

이번편 설치 방법은 CentOS Stream 9 에서 했으나 다른 하위 버전에서도 동일한 방법으로 하면 된다.

그리고 이 글은 CentOS 용인데, Ubuntu 22.04 에서도 아래 명령어로 동일하게 설치되는 것을 확인하였다.

 

https://tomcat.apache.org/

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the

tomcat.apache.org

톰켓 홈페이지에서 필요한 톰켓 버전을 다운로드 받는다.

현재는 10, 9, 8 의 메이저 버전 다운로드가 가능하다.

필자는 서블릿 3.1 이 필요하므로 톰켓 8 을 다운로드 하였고, 이 글은 톰켓 8.5.85 로 진행하였다.

톰켓 버전별 스팩은 다음을 참조한다.

 

톰캣 버전 Servlet 스펙 JSP 스펙 웹소켓 스펙 최소 Java 버전
11.0.x 6.1 4.0 TBD 11
10.1.x 6.0 3.1 2.1 11
10.0.x 5.0 3.0 2.0 8
9.0.x 4.0 2.3 1.1 8
8.5.x 3.1 2.3 1.1 7
7.0.x 3.0 2.2 1.1 6
6.0.x 2.5 2.1 - 5
5.5.x 2.4 2.0 - 1.4
4.1.x 2.3 1.2 - 1.3
3.3.x 2.2 1.1 - 1.1

  

tar.gz (pgp, sha512) 

 

Linux 폴더의 필요한 권한까지 함께 저장된 위 tar 확장자로 다운로드 받으면 된다. 또는, 인터넷이 가능하다면 아래 wget 명령어로 바로 받아도 된다.

 

# cd /usr/local

# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.85/bin/apache-tomcat-8.5.85.tar.gz

 

이 글을 작성한 이후 마이너 업데이트가 계속 될 것이기에, 톰켓 홈페이지에서 최신 버전을 확인해서 꼭 최신 마이너 버전으로 받도록 한다.

 

# tar xvf apache-tomcat-8.5.85.tar.gz
# ln -s apache-tomcat-8.5.85 tomcat

# useradd -m -U -d /opt/wasadmin -s /bin/false wasadmin
# groupadd wasgrp
# usermod -a -G wasgrp wasadmin
# chown wasadmin:wasgrp -R /usr/local/apache-tomcat-8.5.9

# vi /etc/systemd/system/tomcat.service

 

[Unit]
Description=Tomcat
After=network.target

[Service]
Type=forking
User=wasadmin
Group=wasgrp

Environment=CATALINA_PID=/usr/local/tomcat/tomcat.pid
Environment=TOMCAT_JAVA_HOME=/usr/bin/java
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat
Environment=CATALINA_OPTS=
Environment="JAVA_OPTS=-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xms512m -Xmx1024m"

ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

 

 


2025.5.18 업데이트 사항 (시간이 많이 흘러서 jdk 버전이 올라갔다. 아래의 원하는 버전용으로 적용)

 

openjdk-11 용

Environment="JAVA_OPTS=-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseG1GC -XX:MaxMetaspaceSize=256m -Xms512m -Xmx1024m"

 

openjdk-17 용

Environment="JAVA_OPTS=-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m --add-opens=java.base/java.lang=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"

 

만약 원하는 jdk 를 지정하고 싶다면

나의 경우 openjdk-11 이하였다가 openjdk-17 로 올렸더니 또 다른 문제가 발생해서 openjdk-11 로 하였다.

Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk


저장하고 아래 실행 (톰켓 버전 올려도 자동시작 파일을 손댈 필요가 없게 tomcat 8 버전 숫자를 빼고 작업)
# systemctl daemon-reload
# systemctl restart tomcat
# systemctl enable tomcat

 

톰켓을 바로 읽는 경우 방화벽 추가 (apache 연동하는 경우는 불필요)
# firewall-cmd --permanent --zone=public --add-port=8080/tcp
# firewall-cmd --reload