본문 바로가기

IT/Linux

[Tomcat] CentOS 7에 Tomcat8 설치 및 설정

CentOS 7에 Tomcat8을 설치 및 설정하는 예제를 진행하겠습니다. 테스트의 편의성을 위해 root 계정에서 진행하겠습니다.

1. open-jdk 1.8 설치 

jdk가 설치되어 있지 않다면 아래 링크에서 다운로드해주세요.

2020/02/19 - [IT/Linux] - [Linux] CentOS 7에 OpenJDK 1.8 설치

2. tomcat 설치

tomcat은 설치하는 방법이 다양합니다. 이번 예제는 wget을 이용해 설치하겠습니다.

# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz

// 압축 해체
# tar zxvf apache-tomcat-8.5.27.tar.gz

// 톰캣을 /usr/local/로 이동시키고 디렉토리 이름을 tomcat8로 변경
# mv apache-tomcat-8.5.27 /usr/local/tomcat8

3. tomcat 설정 및 환경 변수 등록

vi /usr/local/tomcat8/conf/server.xml
// vi /usr/local/tomcat8/conf/server.xml
// 아래 설정을 찾아서 URIEncoding="UTF-8"을 추가한다.

...
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               URIEncoding="UTF-8" />
...
vi /etc/profile
...

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
CATALINA_HOME=/usr/local/tomcat8
CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin
export JAVA_HOME PATH CLASSPATH CATALINA_HOME
설정 후 아래 명령어 입력 
# source /etc/profile

3. tomcat 실행

startup.sh파일은 tomcat을 실행시키는 shell script입니다. 해당 파일을 실행시켜 tomcat을 작동시켜줍니다.

# /usr/local/tomcat8/bin/startup.sh

tomcat이 실행되고 있는지 확인합니다.

//톰캣 프로세스 확인
# ps -ef|grep tomcat8

// 8080 포트가 열려있는지 확인 
# netstat -tln

 테스트해보기 위해 다음 명령어를 실행시켜줍니다.

# wget http://localhost:8080/

index.html 파일이 다운로드 되었다면 정상적으로 tomcat이 실행되고 있다는 의미입니다. 

index.html 파일은 기본적으로 실행되는 /usr/local/tomcat8/webapps/ROOT WebService에서 다운받은 것이며, 

http://localhost:8080 호출 시,  /usr/local/tomcat8/webapps/ROOT/index.jsp 파일이 index.html로 변환되어 다운됩니다.


4. systemctl 등록

vi /etc/systemd/system/tomcat8.service
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/"
Environment="CATALINA_HOME=/usr/local/tomcat8"
Environment="CATALINA_BASE=/usr/local/tomcat8"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

ExecStart=/usr/local/tomcat8/bin/startup.sh
ExecStop=/usr/local/tomcat8/bin/shutdown.sh

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

[Install]
WantedBy=multi-user.target

 

# systemctl daemon-reload
# systemctl enable tomcat8

// tomcat8 실행
# systemctl start tomcat8

5. systemctl service 부팅 시 자동 실행

//부팅 시 자동 실행 서비스 등록
# systemctl enable tomcat8.service
//등록된 서비스 조회
# systemctl list-unit-files --type service |grep tomcat8

 

6. tomcat manager 설정 (해당 설정은 선택사항 입니다.)

tomcat manager란 tomcat 모니터링 및 어플리케이션 관리, WAR 배포 및 다양한 서비스를 제공해주는 관리 페이지입니다.

1) tomcat-users.xml 수정

vi /usr/local/tomcat8/conf/tomcat-users.xml
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0">

  <role rolename="manager"/>
  <role rolename="manager-gui" />
  <role rolename="manager-script" />
  <role rolename="manager-jmx" />
  <role rolename="manager-status" />
  <role rolename="admin"/>
  <user username="admin" password="패스워드" roles="admin,manager,manager-gui, manager-script, manager-jmx,  manager-status"/>

</tomcat-users>

 

2) 외부 접근 허용 설정

vi /usr/local/tomcat8/conf/Catalina/localhost/manager.xml
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">          <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

설정 후, 서버 재시작

3) 테스트

http://자신의IP:8080/manager

위 주소를 입력하고 ID와 password를 입력면 아래와 같은 웹페이지가 노출됩니다.  

만약 접근이 안된다면 여러가지 이유가 있겠지만, 8080포트로 방화벽이 열려있는지 확인해주시기 바랍니다.
방화벽에 대한 정보는 아래 링크를 이용해주세요.
2020.03.02 - [IT/Linux] - [Linux] firewalld 방화벽 설정하기

'IT > Linux' 카테고리의 다른 글

[Linux] CentOS7에 MariaDB 설치하기  (8) 2020.02.24
[Linux] CentOS 7에 OpenJDK 1.8 설치  (0) 2020.02.19
[Linux] 계정과 그룹관리  (0) 2020.02.12
[Linux] CentOS 7 Git Server 구축하기  (0) 2020.02.11
[Linux] CentOS 7 Mysql 설치  (0) 2019.12.27