웹사이트 검색

Ubuntu에 Apache Tomcat을 설치하는 방법


Java 서버 페이지 코딩이나 Java 서블릿이 포함된 웹페이지를 실행하려면 Apache Tomcat을 사용하면 됩니다. Apache Software Foundation에서 출시한 오픈 소스 웹 서버 및 서블릿 컨테이너입니다.

Tomcat은 자체 웹 서버와 함께 독립형 제품으로 사용하거나 Apache 또는 IIS와 같은 다른 웹 서버와 결합할 수 있습니다. Tomcat의 최신 버전은 9.0.14이며 Tomcat 88.5를 기반으로 구축되었으며 Servlet 4.0, JSP 2.2를 구현합니다.

추가 읽기: CentOS/RHEL에 Apache Tomcat 9를 설치하는 방법

새 버전에서는 다음과 같은 사항이 개선되었습니다.

  • HTTP/2에 대한 지원이 추가되었습니다.
  • JSSE 커넥터와 함께 TLS 지원을 위해 OpenSSL을 사용하기 위한 지원이 추가되었습니다.
  • TLS 가상 호스트(SNI)에 대한 지원이 추가되었습니다.

이 튜토리얼에서는 Ubuntu 18.10 및 이전 버전의 Ubuntu에 Apache Tomcat 9를 설치하는 방법을 보여 드리겠습니다.

1단계: 자바 설치

Java 웹 애플리케이션을 실행하려면 Tomcat에서 서버에 Java를 설치해야 합니다. 해당 요구 사항을 충족하기 위해 표시된 대로 OpenJDK를 설치합니다.

sudo apt update
sudo apt install default-jdk

2단계: Tomcat 사용자 생성

보안상의 이유로 Tomcat은 권한이 없는 사용자, 즉 루트가 아닌 사용자로 실행해야 합니다. 이것이 바로 서비스를 실행할 사용자 및 그룹 tomcat을 생성하는 이유입니다. Tomcat 그룹을 생성하여 시작하십시오.

sudo groupadd tomcat

다음으로 tomcat 그룹의 구성원이 될 tomcat 사용자를 생성합니다. 이 사용자의 홈 위치는 Tomcat을 설치할 위치인 /opt/tomcat입니다. 셸은 /bin/false로 설정됩니다.

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

이제 다음 단계로 진행하여 Tomcat을 다운로드할 준비가 되었습니다.

3단계: Apache Tomcat 설치

사용 가능한 최신 패키지를 다운로드하려면 Tomcat의 다운로드 페이지로 이동하여 최신 버전을 다운로드하세요.

이 튜토리얼을 작성하는 시점에서 Tomcat의 최신 버전은 9.0.14입니다. 해당 버전을 다운로드하려면 현재 디렉터리를 다른 디렉터리로 변경하세요. 예를 들어 /tmp를 사용할 수 있습니다.

cd /tmp

그런 다음 wget 명령을 사용하여 Tomcat 아카이브를 다운로드합니다.

wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

파일의 sha512 합계를 확인하려면 다음을 실행할 수 있습니다.


sha512sum apache-tomcat-9.0.14.tar.gz
cat apache-tomcat-9.0.14.tar.gz.sha512

두 파일의 결과 값(해시)은 동일해야 합니다.

앞서 언급했듯이 /opt/tomcat에 Tomcat을 설치하겠습니다. 우리는 해당 디렉토리를 생성해야 합니다:

sudo mkdir /opt/tomcat

이제 새 디렉터리에 다운로드한 패키지를 추출할 수 있습니다.

sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

이제 폴더 소유권과 권한을 업데이트할 /opt/tomcat으로 이동합니다.

cd /opt/tomcat

그리고 /opt/tomcat의 그룹 소유자를 tomcat으로 설정합니다.

sudo chgrp -R tomcat /opt/tomcat

다음으로 conf 디렉토리에 대한 tomcat 그룹의 읽기 액세스를 업데이트하고 디렉토리에 실행 권한을 설정합니다.

sudo chmod -R g+r conf
sudo chmod g+x conf

다음으로 tomcat 사용자를 webapps, work, templogs 디렉토리의 소유자로 지정합니다.

sudo chown -R tomcat webapps/ work/ temp/ logs/

이제 적절한 권한과 소유권이 설정되었으며 Tomcat 프로세스를 관리하는 데 도움이 되는 시스템 시작 파일을 만들 준비가 되었습니다.

4단계: Tomcat용 SystemD 서비스 파일 생성

Tomcat을 서비스로 실행하고 싶기 때문에 프로세스를 쉽게 관리하는 데 도움이 되는 파일이 필요합니다. 이를 위해 시스템 서비스 파일을 생성합니다. Tomcat은 시스템에서 Java가 어디에 있는지 알아야 합니다.

해당 위치를 찾으려면 다음 명령을 사용하십시오.

sudo update-java-alternatives -l

해당 명령의 출력에는 JAVA_HOME의 위치가 표시됩니다.

이제 해당 정보를 사용하여 Tomcat 서비스 파일을 만들 준비가 되었습니다.

sudo vim  /etc/systemd/system/tomcat.service

파일에 아래 코드를 붙여넣으세요.

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

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

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

JAVA_HOME을 시스템에 맞는 것으로 설정했는지 확인하세요. 준비가 되면 파일을 저장하고 닫습니다. 이제 아래 명령을 사용하여 systemd 데몬을 다시 로드하여 새 서비스 파일을 찾을 수 있습니다.

sudo systemctl daemon-reload

그런 다음 Tomcat 서비스를 시작합니다.

sudo systemctl start tomcat

다음을 통해 서비스 상태를 확인할 수 있습니다.

sudo systemctl status tomcat

이제 시스템의 IP 주소와 서비스 기본 포트 8080를 사용하여 브라우저에서 Tomcat을 테스트할 수 있습니다.

http://ip-address:8080

표시되는 결과는 아래 이미지에 표시된 것과 유사합니다.

위 출력이 표시되지 않는 경우 표시된 대로 방화벽에서 포트 8080을 허용해야 할 수도 있습니다.

sudo ufw allow 8080

시스템 부팅 시 Tomcat을 시작하려면 다음을 실행하세요.

systemctl enable tomcat

5단계: Apache Tomcat 구성

Tomcat에는 웹 관리자 앱이 사전 설치되어 있습니다. 이를 사용하려면 tomcat-users.xml 파일 내에서 인증을 설정해야 합니다. 즐겨 사용하는 텍스트 편집기로 해당 파일을 열고 편집하세요.

sudo vim /opt/tomcat/conf/tomcat-users.xml

관리자관리자 인터페이스에 액세스할 수 있는 사용자를 추가할 예정입니다. 이러한 사용자를 구성하려면 태그 사이에 다음 줄을 추가하세요.

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

다음 사항을 변경하세요.

  • 사용자 이름 – 인증하려는 사용자를 포함합니다.
  • 비밀번호 – 인증에 사용하려는 비밀번호를 입력하세요.

기본적으로 호스트 관리자관리자에 대한 액세스가 제한되어 있으므로 이러한 제한을 제거하거나 변경해야 합니다. 이러한 변경을 수행하려면 다음 파일을 로드하면 됩니다.

관리자 앱의 경우:

sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

호스트 관리자 앱의 경우:

sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

해당 파일 내에서 IP 제한에 대해 주석을 달거나 공용 IP 주소를 허용할 수 있습니다. 이 튜토리얼의 목적을 위해 다음 줄에 주석을 달았습니다.

변경 사항을 적용하려면 다음을 사용하여 Tomcat 서비스를 다시 로드하세요.

sudo systemctl restart tomcat 


이제 http://ipaddress:8080/manager/에 액세스하여
관리자 앱을 테스트할 수 있습니다. 사용자 이름과 비밀번호를 묻는 메시지가 나타나면 이전에 구성한 항목을 사용하십시오. 그 후에 표시되는 인터페이스는 다음과 같습니다.

호스트 관리자에 액세스하려면 http://ip-address:8080/host-manager/를 사용할 수 있습니다.

가상 호스트 관리자를 사용하면 Tomcat 애플리케이션용 가상 호스트를 생성할 수 있습니다.

6단계: 테스트 파일을 생성하여 Apache Tomcat 테스트

/opt/tomcat/webapps/ROOT/ 디렉토리 내에 테스트 파일을 생성하여 모든 것이 원활하게 작동하는지 확인할 수 있습니다.

다음과 같은 파일을 만들어 보겠습니다.

sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

해당 파일 안에 다음 코드를 붙여넣습니다.

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

파일을 저장하고 표시된 대로 소유권을 설정합니다.

sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

이제 http://ip-address:8080/tecmint.jsp를 사용하여 브라우저에 해당 파일을 로드하세요.

그게 다야! Apache Tomcat 서버 설정을 완료하고 첫 번째 Java 코드를 실행했습니다. 이 과정이 쉽고 간단했기를 바랍니다. 문제가 발생하면 아래 의견 양식을 통해 문제를 공유하세요.