서버

[CentOS7] Tomcat 9 설치

검은체리 2019. 7. 12. 17:48
 

CentOS 7 설치 방법 및 설정 가이드 (1) - 다운로드 및 설치 - JooTC

CentOS 7 설치

jootc.com

1. CentOS 설치완료

CentOS Login 화면

2. CentOS7 SSH 접속

SSH 접속화면

3. Tomcat 다운로드 및 설치

# tomcat 다운로드

[root@localhost ~]# cd /opt

[root@localhost opt]# wget https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz

--2019-07-12 17:02:10--  https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz

Resolving www-eu.apache.org (www-eu.apache.org)... 95.216.24.32, 2a01:4f9:2a:185f::2

Connecting to www-eu.apache.org (www-eu.apache.org)|95.216.24.32|:443... connected.

HTTP request sent, awaiting response... 200 OK

Length: 10874669 (10M) [application/x-gzip]

Saving to: apache-tomcat-9.0.21.tar.gz

100%[==========================================================>] 10,874,669   281KB/s   in 43s    

2019-07-12 17:02:54 (246 KB/s) - apache-tomcat-9.0.21.tar.gzsaved [10874669/10874669]

[root@localhost opt]# 

# 압축풀기 

[root@localhost opt]# tar xzf apache-tomcat-9.0.21.tar.gz

[root@localhost opt]# ls -al
total 10620
drwxr-xr-x.  4 root root       79 Jul 12 17:22 .
dr-xr-xr-x. 17 root root      224 Jul 12 12:10 ..
drwxr-xr-x.  9 root root      220 Jul 12 17:22 apache-tomcat-9.0.21
-rw-r--r--.  1 root root 10874669 Jun  5 05:48 apache-tomcat-9.0.21.tar.gz
drwxr-xr-x.  2 root root        6 Oct 31  2018 rh

 

# 심볼릭 지정 

[root@localhost opt]# ln -s apache-tomcat-9.0.21 /opt/tomcat

[root@localhost opt]# 

[root@localhost opt]# 

[root@localhost opt]# ls -al

total 10620

drwxr-xr-x.  4 root root       93 Jul 12 17:23 .

dr-xr-xr-x. 17 root root      224 Jul 12 12:10 ..

drwxr-xr-x.  9 root root      220 Jul 12 17:22 apache-tomcat-9.0.21

-rw-r--r--.  1 root root 10874669 Jun  5 05:48 apache-tomcat-9.0.21.tar.gz

drwxr-xr-x.  2 root root        6 Oct 31  2018 rh

lrwxrwxrwx.  1 root root       20 Jul 12 17:23 tomcat -> apache-tomcat-9.0.21

# tomcat user 생성 

[root@localhost ~]# useradd -m -U -d /opt/tomcat -s /bin/false tomcat

[root@localhost ~]# cd /opt
[root@localhost opt]# chown -R tomcat tomcat/

[root@localhost opt]# sh -c 'chmod +x /opt/tomcat/bin/*.sh'

# tomcat 서비스 

[root@localhost ~]# vi /etc/systemd/system/tomcat.service

====================================================================================

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment="JAVA_HOME=/usr/lib/jvm/jre"
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/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always 

[Install]
WantedBy=multi-user.target

====================================================================================

 

[root@localhost ~]# systemctl daemon-reload

[root@localhost ~]# systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.

[root@localhost ~]# systemctl start tomcat

 

✔ TIP 

[root@localhost ~]# systemctl start tomcat
Job for tomcat.service failed because the control process exited with error code. See "systemctl status tomcat.service" and "journalctl -xe" for details.

 

위와 같은 에러로그가 나온다면 tomcat user 생성부터 다시 실행 

 

참고)

[root@localhost ~]# cd /opt
[root@localhost opt]# chown -R tomcat tomcat/
[root@localhost opt]# systemctl start tomcat

 

[root@localhost opt]# systemctl status tomcat
[0m tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-07-12 19:35:03 KST; 20s ago
  Process: 59632 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 59646 (java)
    Tasks: 41
   CGroup: /system.slice/tomcat.service
           붴59646 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=...

Jul 12 19:35:03 localhost.localdomain systemd[1]: Starting Apache Tomcat Web Application Container...
Jul 12 19:35:03 localhost.localdomain systemd[1]: Started Apache Tomcat Web Application Container.

# Tomcat 로그인 유저 추가

[root@localhost opt]# vi /opt/tomcat/conf/tomcat-users.xml

====================================================================================

<!-- user manager can access only manager section -->

<role rolename="manager-gui" />

<user username="manager" password="manager" roles="manager-gui" />

 

<!-- user admin can access manager and admin section both -->

<role rolename="admin-gui" />

<user username="admin" password="admin" roles="manager-gui,admin-gui" />

====================================================================================

계정 추가 위치 확인

 

 # tomcat 실행 

[root@localhost ~]# cd /opt/tomcat/bin/
[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# 

# CentOS에서 localhost:8080 접속 (admin/admin)

localhost:8080

 

톰캣 정상동작 확인 

# 외부 접속을 위해 방화벽 해제

[root@localhost opt]# firewall-cmd --zone=public --permanent --add-port=8080/tcp 
success 
[root@localhost opt]# firewall-cmd --reload 
success

# 외부 접속 계정 허용

[root@localhost opt]# vi /opt/tomcat/webapps/manager/META-INF/context.xml

 

====================================================================================

<Context antiResourceLocking="false" privileged="true" >

    <Valve className="org.apache.catalina.valves.RemoteAddrValve"

              allow=".*" />

    <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>

</Context>

====================================================================================     

 

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart tomcat

# 외부PC에서 IP 주소:8080으로 접속

192.168.80.130:8080
톰캣 정상동작 확인

✔ TIP ( 정상동작시 로그)

[root@localhost ~]# systemctl status tomcat 
[0m tomcat.service - Apache Tomcat Web Application Container 
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled) 
   Active: active (running) since Fri 2019-07-12 18:44:05 KST; 1min 31s ago 
  Process: 59856 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) 
 Main PID: 59870 (java) 
    Tasks: 41 
   CGroup: /system.slice/tomcat.service 
           붴59870 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=... 

Jul 12 16:40:46 localhost.localdomain systemd[1]: tomcat.service holdoff time over, scheduling restart. 
Jul 12 16:40:46 localhost.localdomain systemd[1]: Stopped Apache Tomcat Web Application Container. 
Jul 12 16:40:47 localhost.localdomain systemd[1]: Starting Apache Tomcat Web Application Container... 
Jul 12 16:40:47 localhost.localdomain systemd[1]: Started Apache Tomcat Web Application Container.