본문으로 바로가기

[Linux] CentOS7 아파치 톰캣(apache tomcat) 설치

category OS/Linux 2021. 8. 2. 15:00

목차

    0. 설치 전 확인

    • 필자는 CentOS 7(centos-release-7-9.2009.0.el7.centos.x86_64) 환경에서 설정했습니다.
    • java(jdk)를 설치하지 않았다면 아래의 링크를 활용해 원하는 버전을 설치 및 세팅해주세요.
    • 기본적으로 CentOS7을 설치하면 java(jdk)가 설치되어 있긴 합니다.
     

    [Linux] CentOS7 원하는 특정 버전 Java(jdk) 설치하기 - wget

    목차 0. 설치 전 확인 - 이 게시물은 Java(jdk)가 설치되어 있지 않다는 가정하에 진행합니다. 이미 Java가 설치되어 있다면 제거 후 설치를 해줍니다. (CentOS 7을 설치하면 기본적으로 Java(jdk)가 설치

    veneas.tistory.com

     


    1. 설치

    1-1. 다운로드

    1. 톰캣 홈페이지에 접속합니다.

    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

     

    2. 홈페이지에 접속하면 다음과 같은 화면이 나오게 되는데 왼쪽에 사이드 메뉴에 Download에서 원하는 버전으로 클릭해서 접속해 줍니다.

    - 필자는 Tomcat 8 버전을 설치했습니다.

    - 원하는 버전이 없으신 분은 Archives를 눌러 원하는 버전을 선택해서 확장자 tar.gz를 다운로드하시면 됩니다.

    톰캣 홈페이지

     

    3. 원하는 버전을 클릭하면 다음과 같은 화면이 나오게 되는데 Core에서 tar.gz 다운로드 링크를 복사해줍니다. (직접 다운로드해서 sftp로 넣어주셔도 됩니다)

    - https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz

     

    4. 위에서 복사한 링크를 이용해 wget을 이용해 원하는 경로에 다운로드해 줍니다.

    # cd /usr/local/lib
    # wget https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
    --2021-08-01 15:26:14--  https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.69/bin/apache-tomcat-8.5.69.tar.gz
    Resolving mirror.navercorp.com (mirror.navercorp.com)... 125.209.216.167
    Connecting to mirror.navercorp.com (mirror.navercorp.com)|125.209.216.167|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 10561246 (10M) [application/octet-stream]
    Saving to: ‘apache-tomcat-8.5.69.tar.gz’
    
    100%[=========================================================================================>] 10,561,246  18.4MB/s   in 0.5s
    
    2021-08-01 15:26:15 (18.4 MB/s) - ‘apache-tomcat-8.5.69.tar.gz’ saved [10561246/10561246]

    1-2. 압축 해제 

    - tar 명령어를 이용해 다운로드한 파일의 압축을 해제해 줍니다.

    # ls
    apache-tomcat-8.5.69.tar.gz  
    # tar xvfz apache-tomcat-8.5.69.tar.gz

    1-3. 자바 환경 확인(jdk)

    - 환경 변수가 올바르게 설정이 되어있거나 혹은 기본 환경변수 $PATH 경로에 java 실행 심볼릭 링크가 존재해야 합니다.

    (둘 중 하나만 확인이 되어도 톰캣 내의 setclasspath.sh 파일이 자바를 알아서 찾습니다.)

    자바 환경 변수 세팅 확인
    # echo $JAVA_HOME
    /usr/local/bin/java_home
    
    PATH 환경 변수 경로에 자바 실행 명령어가 있는지 확인
    (EX. 자바 bin 디렉터리 내에 java 실행 파일 심볼릭 링크)
    (which는 특정명령어의 위치를 찾아주는 명령어입니다.)
    # which java
    /usr/local/bin/java

    - 만약 둘 다 확인이 안 될 경우 다음과 같이 조치합니다.

    두 가지 중 하나만 하면 됩니다.
    경로는 사용자가 설치한 jdk경로를 넣어 주셔야 합니다.
    
    CASE1) 환경변수 추가
    ★ 첫번째 명령어에서 >는 무조건 2개를 하셔야 합니다.
       > 1개만 이용해서 작성하실 경우 이전에 작성된 내용은 사라집니다.
       초보자는 해당 파일(/etc/profile) 백업 후 작업하시는 것을 추천드립니다.
    # export JAVA_HOME=/usr/local/lib/jdk-14.0.2 >> /etc/profile
    # source /etc/profile
    # echo $JAVA_HOME
    /usr/local/lib/jdk-14.0.2
    
    CASE2) 리눅스 기본 환경변수 PAHT 경로에 자바 실행 심볼릭 링크 생성
    # echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    # ln -s /usr/local/lib/jdk-14.0.2/bin/java java14
    # which java14
    /usr/local/bin/java14

    1.4. 방화벽 설정

    - 톰캣의 기본 포트는 8080입니다. 외부 접속을 위해 8080 포트를 열어 줍니다.

    (외부의 접속이 필요 없다면 생략하셔도 됩니다. 로컬에서는 접속이 가능합니다.)

    # firewall-cmd --permanent --zone=public --add-port=8080/tcp
    success
    # firewall-cmd --reload
    success
    # firewall-cmd --permanent --list-all
    public
      target: default
      icmp-block-inversion: no
      interfaces:
      sources:
      services: dhcpv6-client ssh
      ports: 8080/tcp
      protocols:
      masquerade: no
      forward-ports:
      source-ports:
      icmp-blocks:
      rich rules:​

    1.5 톰캣 실행

    - 톰캣 실행 파일은 bin 디렉터리에 존재합니다. 톰캣을 실행해 줍니다.

      톰캣 실행 시: sh startup.sh

      톰캣 종료 시: sh shutdown.sh

    # cd apache-tomcat-8.5.69/
    # ls
    BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  temp  webapps  work
    
    # cd bin/
    # ls
    bootstrap.jar       ciphers.sh                    daemon.sh         shutdown.bat     tomcat-native.tar.gz
    catalina-tasks.xml  commons-daemon-native.tar.gz  digest.bat        shutdown.sh      tool-wrapper.bat
    catalina.bat        commons-daemon.jar            digest.sh         startup.bat      tool-wrapper.sh
    catalina.sh         configtest.bat                setclasspath.bat  startup.sh       version.bat
    ciphers.bat         configtest.sh                 setclasspath.sh   tomcat-juli.jar  version.sh
    
    # sh startup.sh
    Using CATALINA_BASE:   /usr/local/lib/apache-tomcat-8.5.69
    Using CATALINA_HOME:   /usr/local/lib/apache-tomcat-8.5.69
    Using CATALINA_TMPDIR: /usr/local/lib/apache-tomcat-8.5.69/temp
    Using JRE_HOME:        /usr/local/bin/java_home
    Using CLASSPATH:       /usr/local/lib/apache-tomcat-8.5.69/bin/bootstrap.jar:/usr/local/lib/apache-tomcat-8.5.69/bin/tomcat-juli.jar
    Using CATALINA_OPTS:
    Tomcat started.

    - 만약 에러가 뜬다면 자바 개발 환경 세팅이 잘 안된 것입니다. 환경변수나 실행파일을 확인해주세요 

     


    2. 확인

    - 다음 명령어를 이용해 톰캣이 잘 실행되었는지 확인합니다.

    프로세스 실행 확인
    # ps -ef | grep tomcat
    root     30121     1  3 16:02 pts/0    00:00:03 /usr/local/bin/java_home/bin/java -Djava.util.logging.config.file=/usr/local/lib/apache-tomcat-8.5.69/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/lib/apache-tomcat-8.5.69/bin/bootstrap.jar:/usr/local/lib/apache-tomcat-8.5.69/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/lib/apache-tomcat-8.5.69 -Dcatalina.home=/usr/local/lib/apache-tomcat-8.5.69 -Djava.io.tmpdir=/usr/local/lib/apache-tomcat-8.5.69/temp org.apache.catalina.startup.Bootstrap start
    root     30279 29121  0 16:04 pts/0    00:00:00 grep --color=auto tomcat
    톰캣이 포트를 잘 사용하고 있는지 확인 (8080포트 LISTEN 확인)
    # netstat -ntap | grep LISTEN
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      716/rpcbind
    tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1740/dnsmasq
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1190/sshd
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1185/cupsd
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1448/master
    tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      29114/sshd: root@pt
    tcp6       0      0 :::111                  :::*                    LISTEN      716/rpcbind
    tcp6       0      0 :::8080                 :::*                    LISTEN      30121/java
    tcp6       0      0 :::22                   :::*                    LISTEN      1190/sshd
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1185/cupsd
    tcp6       0      0 ::1:25                  :::*                    LISTEN      1448/master
    tcp6       0      0 ::1:6010                :::*                    LISTEN      29114/sshd: root@pt
    tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      30121/java

     

    - CentOS7 UI 환경으로 들어가 브라우저를 이용해 localhost:8080 또는 127.0.0.1:8080으로 접속했을 때 다음과 같은 화면이 출력되면 잘 실행이 되는 것입니다.

     

    - 만약 GUI 환경을 설치하지 않은 경우 curl 명령어를 이용해 톰캣이 잘 떠 있는지 확인합니다.

    # curl 127.0.0.1:8080
    
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8" />
            <title>Apache Tomcat/8.5.69</title>
            <link href="favicon.ico" rel="icon" type="image/x-icon" />
            <link href="tomcat.css" rel="stylesheet" type="text/css" />
        </head>
    
        <body>
            <div id="wrapper">
                <div id="navigation" class="curved container">
                    <span id="nav-home"><a href="https://tomcat.apache.org/">Home</a></span>
                    <span id="nav-hosts"><a href="/docs/">Documentation</a></span>
                    <span id="nav-config"><a href="/docs/config/">Configuration</a></span>
                    <span id="nav-examples"><a href="/examples/">Examples</a></span>
                    <span id="nav-wiki"><a href="https://wiki.apache.org/tomcat/FrontPage">Wiki</a></span>
                    <span id="nav-lists"><a href="https://tomcat.apache.org/lists.html">Mailing Lists</a></span>
                    <span id="nav-help"><a href="https://tomcat.apache.org/findhelp.html">Find Help</a></span>
                    <br class="separator" />
                </div>
                <div id="asf-box">
                    <h1>Apache Tomcat/8.5.69</h1>
                </div>
    ... 생략
    </html>