본문 바로가기
Linux/CentOS

[CentOS Stream8] 08. Tomcat 8.5 설치

by 이도현 2021. 4. 21.

Tomcat은 Java로 만든 웹 어플리케이션을 서비스하기 위해 가장 널리 사용되는 서버이다.

Tomcat을 설치하기 위해서는 먼저 자바가 설치되어 있어야 한다.

자바 설치는 이곳에서 이미 다루었다.

톰캣을 현재 시점으로 톰캣 버전 10까지 나왔지만 나의 경우 8.5를 설치하려 한다.

톰캣 홈페이지는 다음과 같다.

tomcat.apache.org/

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications ar

tomcat.apache.org

 

사실 가장 쉽게 톰캣을 설치하는 방법은

yum install tomcat*

으로 설치하는 것이다.

하지만 이러면 보통 1.7버전이 설치되기 때문에 내가 원하는 버전을 설치할 수 없다.

그래서 복잡하지만 다음과 같은 방법으로 설치를 하려한다.

 

톰캣은 같은 버전이라고 해도 계속 업데이트가 되기 때문에 지금 최신의 톰캣8.5라도 시간이 지나면 계속 세부적인 버전은 바뀐다.

나는 현재 시점으로 최신인 8.5.65 버전을 설치할 것이다.

 

위의 톰캣 홈페이지에 들어가서 Download 항목의 Tomcat 8로 가면 가장 최신 버전이 노출된다.

거기서 Core 항목에서 zip 확장자로 끝나는 파일의 경로를 복사한다. 크롬에서 우클릭하여 링크 주소 복사를 하여 경로 복사가 가능하다.

톰캣을 그냥 설치하는 경우 경로가 /usr/share/tomcat 이므로 나는 /usr/share/tomcat8.5 로 하겠다.

 

먼저 사용자를 추가한다.

sudo useradd -m -U -d /usr/share/tomcat8.5 -s /bin/false tomcat8.5

최초 경로로 가서 파일을 다운로드 받아 압축 풀고 경로로 이동시킨다.

cd
wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.65/bin/apache-tomcat-8.5.65.zip
unzip apache-tomcat-8.5.65.zip
rm apache-tomcat-8.5.65.zip
mv apache-tomcat-8.5.65/ /usr/share/
cd /usr/share/
mv apache-tomcat-8.5.65/ tomcat8.5

권한부여한다.

sudo chown -R tomcat8.5: /usr/share/tomcat8.5
sudo sh -c 'chmod +x /usr/share/tomcat8.5/bin/*.sh'

서비스 실행을 위해 스크립트를 추가한다.

 

vi /etc/systemd/system/tomcat8.5.service
/etc/systemd/system/tomcat8.5.service
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target

[Service]
Type=forking

User=tomcat8.5
Group=tomcat8.5

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/usr/share/tomcat8.5"
Environment="CATALINA_HOME=/usr/share/tomcat8.5"
Environment="CATALINA_PID=/usr/share/tomcat8.5/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/usr/share/tomcat8.5/bin/startup.sh
ExecStop=/usr/share/tomcat8.5/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

이제 데몬을 리로드 하고 켜지면 바로 사용가능하게 한 다음 시행하고 상태를 본다.

sudo systemctl daemon-reload
sudo systemctl start tomcat8.5
sudo systemctl enable tomcat8.5
sudo systemctl status tomcat8.5

포트를 열어준다.

sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

정상동작하는 지 확인하고 이제 몇 가지 설정을 할 것이다.

 

사용자 아이디와 패스워드는 수정하여 <tomcat-users></tomcat-users> 사이에 추가한다.

vi /usr/share/tomcat8.5/conf/tomcat-users.xml
/usr/share/tomcat8.5/conf/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="userid" password="userpassword" roles="admin-gui,manager-gui,manager-script"/>

원격접속이 가능하게 다음부분에 주석을 건다.

vi /usr/share/tomcat8.5/webapps/manager/META-INF/context.xml
/usr/share/tomcat8.5/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>

vi /usr/share/tomcat8.5/webapps/host-manager/META-INF/context.xml
/usr/share/tomcat8.5/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
   <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>

배포파일 용량이 커도 업로드 가능하게 수정한다.

vi /usr/share/tomcat8.5/webapps/manager/WEB-INF/web.xml
/usr/share/tomcat8.5/webapps/manager/WEB-INF/web.xml
<multipart-config>
     <!-- 50MB max -->
        <!--
      <max-file-size>52428800</max-file-size>
      <max-request-size>52428800</max-request-size>
        -->
     <!-- 500MB max -->
      <max-file-size>524288000</max-file-size>
      <max-request-size>524288000</max-request-size>
      <file-size-threshold>0</file-size-threshold>
</multipart-config>

톰캣을 다시 시작한다.

systemctl restart tomcat8.5