출처: https://www.infracody.com/2022/05/install-apache-tomcat-8-on-centos-7.html
CentOS 7 리눅스 서버에서 Apache Tomcat 8.5.79 설치 방법에 대해 알아보고, 실습 내용을 통해 쉽게 Apache Tomcat WAS 서버를 설치하여 사용할 수 있습니다.
아파치 톰캣(Apache Tomcat)은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿을 실행할 수 있는 환경을 제공하며, 설정 변경은 관리 툴을 이용하여 변경하거나 설정 파일을 직접 편집하여 설정할 수 있습니다. 톰캣은 동적 웹 페이지(Dynamic Web Page)를 위한 웹 컨테이너, 서블릿 컨테이너라고도 불리며, 웹 서버에서 처리해야 할 정적 콘텐츠를 제외한 DB 연동 및 동적 콘텐츠를 제공합니다. 웹 서버와 연동하지 않더라도 톰캣 5.5 버전부터 정적 콘텐츠 처리 기능을 포함하고 있기 때문에 아파치 톰캣만으로도 웹 서비스를 제공할 수 있습니다. 하지만, 톰캣만으로 웹 서비스 제공 시 정적 콘텐츠 및 동적 콘텐츠를 함께 처리해야 하므로 부하 분산을 위해 웹 서버(WEB)와 웹 애플리케이션 서버(WAS)로 역할을 분담하여 구성하는 게 효율적입니다.
환경 정보
- 운영 체제 : CentOS 7.9
- 실행 계정 : root
- SSH 접속 및 외부 인터넷이 가능한 네트워크 구성
OpenJDK 설치하기
Apache Tomcat 8.5.x 버전을 실행하려면 Java SE 7 이상이 필요하며, 이 문서에서는 JDK(Java Development Kit)를 오픈 소스인 OpenJDK 8 버전을 설치합니다.
OpenJDK 11 버전을 설치하려면 CentOS 7 리눅스에 YUM으로 Java OpenJDK 11 설치하기 글을 참조하여 설치하시면 됩니다.
설치할 수 있는 OpenJDK 버전 확인하기
YUM 리포지토리에서 설치할 수 있는 OpenJDK 버전 목록을 확인합니다.
yum list java*jdk-devel
[root@infracody.com ~]# yum list java*jdk-devel
OpenJDK 8 설치하기
설치할 수 있는 OpenJDK 목록 중 java-1.8.0-openjdk-devel.x86_64 패키지를 설치합니다.
yum install -y java-1.8.0-openjdk-devel.x86_64
[root@infracody.com ~]# yum install -y java-1.8.0-openjdk-devel.x86_64
OpenJDK 설치 확인하기
OpenJDK 8이 정상적으로 설치되었는지 자바 버전 확인 명령으로 확인합니다.
java -version
[root@infracody.com ~]# java -version
Apache Tomcat 서비스 사용자 추가하기
톰캣 서비스를 root 계정으로 실행하면 보안상 취약하므로, 서비스 계정으로 사용할 tomcat 계정을 생성합니다.
톰캣이 설치 될 /usr/local/tomcat 디렉토리를 홈 디렉토리로 설정하고 -M 옵션으로 디렉토리 생성은 하지 않습니다. -s /sbin/nologin 옵션으로 ssh shell 로그인을 차단합니다.
useradd -d /usr/local/tomcat -M -s /sbin/nologin tomcat
Apache Tomcat 다운로드
wget 명령을 사용하여 톰캣 압축 파일을 다운 받습니다. wget 패키지가 설치되어 있지 않으면 yum install -y wget 명령을 실행하여 wget 설치 후 진행합니다.
톰캣을 /usr/local/ 경로에 설치하기 위해 wget -P 옵션을 사용해서 저장 경로를 지정합니다.
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.88/bin/apache-tomcat-8.5.88.zip -P /usr/local/
[root@infracody.com ~]# wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.88/bin/apache-tomcat-8.5.88.zip -P /usr/local/
Apache Tomcat 압축 해제 및 심볼릭 링크 만들기
톰캣을 저장한 /usr/local/ 디렉토리로 이동 후 unzip으로 압축 파일을 해제합니다. unzip 패키지 미설치 시 yum install -y unzip 명령을 실행하여 설치하시면 됩니다.
cd /usr/local/
unzip apache-tomcat-8.5.88.zip
apache-tomcat-8.5.79 디렉토리가 만들어졌는지 확인합니다.
ll -d apache-tomcat-8.5.88
[root@infracody.com ~]# ll -d apache-tomcat-8.5.88
톰캣 디렉토리의 버전 정보를 제외하고 간략하게 tomcat으로 사용하기 위해 /usr/local/tomcat 심볼릭 링크를 생성합니다.
ln -s apache-tomcat-8.5.88 tomcat
tomcat 심볼릭 링크가 생성되었는지 확인합니다. 심볼릭 링크를 통해 /usr/local/apache-tomcat-8.5.88 원본 디렉토리를 /usr/local/tomcat 에서 동일하게 사용할 수 있습니다.
ll -d tomcat
[root@infracody.com ~]# ll -d tomcat
Apache Tomcat 디렉토리와 실행 파일 권한 설정하기
tomcat 계정으로 서비스를 실행하기 위해 톰캣 패키지 디렉토리 권한을 변경합니다.
chown -R tomcat:tomcat /usr/local/apache-tomcat-8.5.88
톰캣의 bin 디렉토리 내 스크립트 파일에 실행 권한을 추가합니다.
chmod +x /usr/local/apache-tomcat-8.5.88/bin/*.sh
systemd에 tomcat 서비스 등록하기
다음 명령을 실행하여 /etc/systemd/system/tomcat.service 파일을 생성합니다.
cat <<EOF > /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Service
After=syslog.target network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java"
Environment="CATALINA_HOME=/usr/local/tomcat"
Environment="CATALINA_BASE=/usr/local/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
EOF
systemd에 tomcat 서비스를 활성화하여 서버 시작 시 자동으로 tomcat 서비스를 시작하게 합니다.
systemctl enable tomcat
[root@infracody.com ~]# systemctl enable tomcat
Apache Tomcat 서비스 시작하기
톰캣 서비스를 실행하고, 서비스 상태를 확인합니다.
systemctl start tomcat
systemctl status tomcat
[root@infracody.com ~]# systemctl status tomcat
마무리
CentOS 7 리눅스에 Apache Tomcat 8.5.79 패키지를 설치하는 방법에 대해 알아보았습니다. 톰캣 패키지를 다운로드하고 tomcat 계정을 추가하여 서비스를 등록하고 사용하는 과정을 통해 쉽게 톰캣을 설치하고 사용할 수 있습니다.
'컴퓨터 활용(한글, 오피스 등) > 50_2.운영체제_리눅스' 카테고리의 다른 글
tocmat java opt 변경 (0) | 2023.05.12 |
---|---|
CentOS7 원하는 특정 버전 Java(jdk) 설치하기 (1) | 2023.05.12 |
CentOS HTTPD ROOT, httpd의 위치 (0) | 2023.05.12 |
리눅스 디렉토리 구조 한눈에 정리 (1) | 2023.05.12 |
스카우터 설치 및 실행(+Jenkins, SpringBoot) (0) | 2023.05.11 |