[Linux] CentOS7 - Java Web 서버 - 기초환경 설치 및 구성 #01
[Linux] CentOS7 - Java Web 서버 - 실운용을 위한 Tomcat 설정 #02
[Linux] CentOS7 - Java Web 서버 - Oracle 설치 및 설정 #03
[Linux] CentOS7 - GIT을 이용한 버전관리 시스템 구축 #04
CentOS7 - Java Web 기초환경 설치 및 구성
이번 포스팅에서는 설치한 CentOS7 버전에 기본적인 Java Web 개발환경을 구축하기 위한
기본적인 Linux 서버 환경 구축을 목표로 제작되었다.
※ 서버용 구성으로 설치된 CentOS7을 대상으로 하여
OpenSSH, Java JDK 1.8, Apache Tomcat 8.5를 설치하고 환경구성을 잡는걸 목표로 하고있다.
[Linux] VirtualBox 가상머신을 이용한 - CentOS7 설치( https://saakmiso.tistory.com/3 ) 포스팅에서
생성한 CentOS의 초기 상태에서 진행되는 상태임을 알려드립니다.
포스팅에 사용된 CentOS7 설정
① CentOS 최소설치
② 관리자 계정 비밀번호 지정
③ 일반 사용자 계정 생성 및 비밀번호 지정
④ 네트워크 연결
#1. CentOS7 초기 세팅
제일 먼저 관리자( root ) 계정으로 로그인을 한다.
localhost login : root
password : 관리자_비밀번호
password는 CentOS7 설치중 지정한 root 계정의 비밀번호 이다.
다음으로 vi 편집기를 사용하여 CentOS7 생성중 지정한 사용자계정에 관리자 명령 실행( sudo ) 권한을 부여해준다.
# vi /etc/sudoers
~~ 이 하 생 략 ~~
##
## Allow root to run any commands anywhere( 지정한 sudo 명령을 사용할 수 있게 설정 )
root ALL=(ALL) ALL
saakmiso ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## Same thing without a password( 지정한 sudo 명령을 사용시 비밀번호 입력 생략 설정 )
# %wheel ALL=(ALL) NOPASSWD: ALL
saakmiso ALL=(ALL) NOPASSWD: ALL
이제 사용자 계정으로 전환한다.
# su - 사용자계정
다음으로 설치 및 이후의 CentOS 사용에 필요한 패키지들은 모두 설치해 준다.
$ sudo yum update -y
$ sudo yum install -y epel-release
$ sudo yum install -y npm
$ sudo yum install -y net-tools
$ sudo yum install -y kernel-devel
$ sudo yum install -y kernel-headers
$ sudo yum install curl
$ sudo yum install -y wget
$ sudo yum install -y vim-enhanced
$ sudo yum install -y policycoreutils-python
$ sudo yum install -y unzip
$ sudo yum install -y rsync
$ sudo yum install -y cronolog
$ sudo yum groupinstall -y "Development Tools" // 설치 오류있을시 실행
위 순서대로 하나씩 설치하자.
패키지 업데이트 및 설치가 완료되었다면 CentOS7을 재부팅 하여준다.
$ sudo shutdown -r now
재부팅 되면 아까와 달리 관리자( root ) 계정이 아닌 생성한 사용자 계정으로 로그인 한다.
localhost login : 사용자_계정
password : 사용자_비밀번호
#2. CentOS - OpenSSH 설치
위 서두에서 말한대로 해당 포스팅은 CentOS7의 Server버전의 환경 구축을 목적으로 작성되었다.
기본적으로 사용자가 서버 컴퓨터 로컬 환경에, 물리적 경로로 직접 붙어서 작업하는 경우는 드물기 때문에
외부에서 접속하여 작업을 하는것이 기본적이다.
외부에서의 조작을 위해 이번 내용에서는 SSH( Secure Shell ) 통신을 사용하여
원격지 호스트 컴퓨터에 접속을 위한 작업을 진행하도록 한다.
01) OpenSSH 설치 여부 확인
기본 사양으로 CentOS를 설치하면 SSH가 설치되어 있지 않는게 기본이지만.
설치시 설정에 따라 SSH가 설치되어 있을 수도 있으니 아래와 설치 여부를 확인하자.
$ yum list installed ssh
Loaded plugins : fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.neowiz.com
* extras: ftp.daumkakao.com
* updates: ftp.daumkakao.com
Error: No matching Packages to list
위와같이 Error : No matching Packages to list 메시지를 출력한다면
OpenSSH를 설치해 주어야 한다.
02) OpenSSH 설치하기
위와같이 OpenSSH가 설치 되지 않은 상태라면 아래 명령 순서대로 설치를 진행하여 준다.
$ sudo yum install -y openssh-server
$ sudo yum install openssh-clients
$ sudo yum install -y openssh-askpass
03) CentOS Network 재시작
$ sudo systemctl restart network
04) OpenSSH 설정파일 수정
설치를 완료하고 네트워크를 재시작 해 주었다면, vim 편집기로 sshd_config 파일을 수정해 준다.
Port 22를 찾아 앞에 주석( # )을 해제해 주기만 하면 된다.
$ sudo vim /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22 // 주석( # ) 제거
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
~ 이 하 생 략 ~
주석을 제거하고 저장해 주기만 하면 된다.
05) OpenSSH 서비스 구동
$ sudo systemctl start sshd.service
이제 기본적인 SSH 통신을 위한 준비는 다 마무리 되었다.
하지만 아직 SSH 통신을 외부환경에서 원격으로 리눅스 서버를 조작하기 위해서는 해주어야 할 작업이 하나 남아있다.
위에서 지정한 22번 Port의 방화벽을 해제해 주도록 하자.
#3. 방화벽( FireWall ) PROT 허용하기
01) 방화벽( 파이어 월 ) 실행여부 확인 및 실행
$ sudo firewall-cmd --state
running( 실행중 ) / not running( 실행중이 아님 )
파이어 월이 실행중이 아닌 경우( nor running )
파이어 월 실행
$ sudo systemctl start firewalld
Linux 재부팅시 FireWall 자동 재시작 설정
$ sudo systemctl enable firewalld
02) 파이어 월( FireWall ) - 특정 PORT 허용하기
제일먼저 우리가 위에서 설치한 SSH 접속을 허용하기 위한 PROT 22 부터 작업을 진행해 보도록 하자.
① PORT 22( SSH 네트워크 통신 ) 기본 포트 허용하기
$ sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
$ sudo firewall-cmd --reload
이제 원격지에서 접속하기 위한 SSH 통신의 22번 PROT의 사용이 허가되었기에
원격지에서 서버의 조작이 가능한 상태가 되었다.
그렇지만 계속 말하는 바와 같이 해당 포스팅은 Java Web Service 환경 구성을 위한
Liunx 서버( CentOS7 ) 구축과정을 다루기 때문에
아래 PORT들도 여기서 접근 권한을 허용해 주도록 하자.
② PORT 80( HTTP 기본 포트 )
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
success
③ PORT 8181( Apache Tomcat 커스텀 포트 )
$ sudo firewall-cmd --zone=public --add-port=8181/tcp --permanent
success
Apache Tomcat의 Defalut 포트는 8080이지만 Oracle Application Express의 기본 포트가 8080을 사용하기에
8080이외에 8181등의 다른 포트로 변경하여 사용한다.
④ PORT 8080( Oracle Application Express 기본 포트 )
$ sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
⑤ PORT 1521( Oracle DataBase 기본 포트 )
$ sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent
success
⑥ PORT 20( TCP FTP-data - File Transfer )
$ sudo firewall-cmd --zone=public --add-port=20/tcp --permanent
success
⑦ PORT 21( TCP FTP - FTP Control )
$ sudo firewall-cmd --zone=public --add-port=21/tcp --permanent
success
⑧ PORT 50000 ~ 50100( FTP Passive Mode )
$ sudo firewall-cmd --zone=public --add-port=50000-50100/tcp --permanent
success
추가적으로 이번 포스팅에서 설치할 Apache Tomcat의 포트 번호와,
Linux 환경( CentOS7 )에 설치할 Oracle DataBase 기본 포트인 1521과, Application Express 8080 포트
HTTP 통신 기본포트인 80, FTP 접속을 위한 20, 21 포트의 접근 권한을 "허용"으로 변경하였고
FTP 패시브 모드 사용에 필요한 50000 ~ 50100 포트 또한 허용하였다.
03) 방화벽( FireWall ) - 재시작
사용할 PORT의 지정이 완료되면 FireWall을 재시작해 준다.
$ sudo firewall-cmd --reload
success
04) 방화벽( FireWall ) - 확인
아래 명령어를 활용하여 지금까지 지정한 22, 3306, 8080, 8181 포트의 사용이 허가되었는지 확인해 보자.
$ sudo firewall-cmd --list-all-zone
~~ 이 하 생 략 ~~
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports: 22/tcp 80/tcp 8181/tcp 8080/tcp 1521/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
~~ 이 하 생 략 ~~
#4. 원격지에서 CentOS Linux Server에 접근하기
위 OpenSSH 설치 및 방화벽( FireWall )설정이 마무리 되었다면,
원격지 컴퓨터를 통해 CentOS7에 접근해 보도록 하자.
01) SSH 원격 접속 작업 툴 다운로드 - Free Ware
Windows 컴퓨터를 사용한다라는 전제하에 아래 3가지 프리웨어( FreeWare ) 프로그램들을 추천한다.
① Tabby Terminal( https://tabby.sh/ )
장점 : 한글 지원 및 종료후 이전 접속 SSH 바로 연결
② Termius( https://termius.com/ )
장점 : 한글 지원 및 이전 작업내용 기억
단점 : 회원가입이 필요하며, 다양한 부가 기능을 쓰기 위해서는 멤버쉽 결제 필요
③ MobaXtrem( https://mobaxterm.mobatek.net/ )
장점 : 다양한 부가기능을 지원
단점 : 저장&등록 관리 가능한 SSH 기록의 수가 제한됨, 한글 미지원
④ Putty( 한글 : http://hputty.org/, 영어 : https://www.putty.org/ )
장점 : 무료이며, 많은곳에서 사용함
단점 : 부가기능이 다른 프로그램보다 적음
위 4가지 프로그램을 필자는 추천하는 바다.( 필자는 주로 Tabby, Termius를 사용한다. )
Termius와 MobaXtrem은 AWS등의 클라우드 서버를 사용하는곳에서 주로 사용하는데,
2개의 프로그램은 또 부가기능이 많다는것이 장점이다.
Putty는 주로 사내망에서 작업하는 곳들에서 많이 사용하며, 사용된 기간이 오래되었기에
많은곳에서 주력으로 사용하고 있다는것이 장점이다.
02) Linux Server( CentOS7 ) - IP 주소 확인하기
SSH 접속프로그램을 다운 받았다면 이제 아래 명령어를 통해 CentOS7 Linux Server의 IP Address 정보를 확인하고
접속프로그램을 이용하여 원격지에서 Linux Server로 접근을 진행해 보자.
① Linux IP주소 확인 : ip addr show
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 0.0.0.0/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 02:dd:86:aa:f5:64 brd ff:ff:ff:ff:ff:ff
inet 0.0.0.0/0 brd 0.0.0.0 scope global dynamic eth0
valid_lft 2151sec preferred_lft 2151sec
inet6 fe80::dd:86ff:feaa:f564/64 scope link
valid_lft forever preferred_lft forever
② Linux IP주소 확인 : ifconfig
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 0.0.0.0 netmask 0.0.0.0 broadcast 0.0.0.0
inet6 fe80::dd:86ff:feaa:f564 prefixlen 64 scopeid 0x20<link>
ether 02:dd:86:aa:f5:64 txqueuelen 1000 (Ethernet)
RX packets 2179214 bytes 639742744 (610.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2531954 bytes 419425421 (399.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 0.0.0.0 netmask 0.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2112393 bytes 128679342 (122.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2112393 bytes 128679342 (122.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
위와 같이 검색하였을때 나오는 inet 0.0.0.0이 SSH 접속에 사용될 Linux 서버의 IP 주소다.
03) SSH 원격 작업 툴 - 접속정보 입력
IP Address | Linux 서버의 IP 주소 |
PORT | 기본 포트는 22 |
Username | Linux 사용자 계정 Name |
Password | Linux 사용자 계정에 대한 Password |
#5. VSFTPD 설치하기
1) CentOS7에 VSFTPD 설치 및 활성화
먼저 yum 명령을 이용하여 vsftpd의 설치를 진핸한다.
$ sudo yum install -y vsftpd
VSFTPD의 설치가 완료되면 설정을 변경하기위해 종료시켜준다.
$ sudo systemctl stop vsftpd
chroot 제한 설정을 적용 할 사용자 목록 파일을 작성한다.
$ sudo vim /etc/vsftpd/chroot_list
chroot_제한_사용자_계정_01
chroot_제한_사용자_계정_02
아래와 같이 vim에디터를 이용하여 VSFTPD의 설정을 변경한다.
$ sudo vim /etc/vsftpd/vsftpd.conf
~~ vsftpd.conf 설 정 파일 하 단 에 아 래 내 용 을 추 가 ~~
# FTP 서버에 로그인한 사용자의 홈 디렉토리를 chroot 환경으로 제한
chroot_local_user=NO
# 특정 사용자에 대해서만 chroot 제한을 적용
chroot_list_enable=YES
# chroot 제한을 받을 사용자 목록 관리 파일
chroot_list_file=/etc/vsftpd/chroot_list
# chroot 환경에서도 쓰기 권한이 허용
allow_writeable_chroot=YES
# 패시브모드 활성화
pasv_enable=YES
# 패시브모드에서 사용할 포트 범위 설정
pasv_min_port=50000
pasv_max_port=50100
# FTP 서비스에 대한 일반적인 로그를 기록 / FTP 프로토콜에 대한 디버그 정보를 기록
dual_log_enable=YES
# FTP 프로토콜에 대한 세부적인 정보를 로그 파일에 기록
log_ftp_protocol=YES
# vsftpd 서버가 FTP 연결을 처리할 때 사용할 시스템 사용자를 지정( nobody 권장 )
ftp_username=nobody
위 내용을 vsftpd.conf 파일 가장 하단에 기입하여 준다.
vsftpd.conf 파일의 수정이 완료되었다면 VSFTPD를 다시 시작 하여준다.
$ sudo systemctl start vsftpd
재실행 하였다면 VSFTPD 상태를 확인해 보자.
$ sudo systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since 요일 YYYY-MM-DD HH:MM:SS KST; 8s ago
Process: 1700 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 1701 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─1701 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
7월 31 20:38:09 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
7월 31 20:38:09 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
위와 같다면 VSFTPD가 실행되고 있음을 확인 할 수 있다.
마지막으로 VSFTPD를 CentOS7 재실행시 자동으로 시작되게 설정한다.
$ sudo systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
VSFTPD의 설치가 완료 되었다면 접속할 사용자 디렉토리에 대한 권한 변경 한다.
만약 사용자 계정이 존재하지 않는다면 아래 포스팅을 참고하여 신규 사용자_계정을 생성하고 진행하자.
먼저 cat 명령을 사용하여 사용자 계정 확인 /home/ 디렉토리안의 사용자_계정 디렉토리의 접근권한을 가진
계정의 존재 유무를 확인 한다.
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
사용자_계정:x:1000:1000:사용자_계정:/home/사용자_계정:/bin/bash
가장 하단의 내용을 확인하면 사용자 계정이 존재한다.
사용자_계정:x:1000:1000:사용자_계정:/home/사용자_계정:/bin/bash
그럼 이제 /home/사용자_계정 디렉토리 접근 권한 변경 하여 준다.
$ sudo chmod 755 /home/사용자_계정
$ ls -al /home/
합계 0
drwxr-xr-x. 4 root root 38 2월 22 19:08 .
dr-xr-xr-x. 17 root root 224 2월 22 18:12 ..
drwxr-xr-x. 2 사용자_계정 사용자_계정 99 2월 22 19:19 사용자_계정
2) FTP 접속 프로그램을 이용하여 원격 서버 Directory에 접근하기
FileZilla 다운로드 : https://filezilla-project.org/download.php?type=client
파일질라를 다운받고 설치를 완료 했다면 아래와 같이
"새로운 사이트 관리자"를 생성하여 FTP 접속 가능 유무를 테스트 해보자.
사이트 관리자 팝업창이 뜨면 아래와 같은 순서로 작업을 진행하면 된다.
프로토콜 | FTP - 파일 전송 프로토콜 |
호스트 | CentOS7의 IP주소 |
포트 | 21 |
암호화 | TLS를 통한 명시적 FTP가 가능한 경우 |
로그온 유형 | 일반 |
사용자 | 사용자_계정 |
비밀번호 | 사용자_비밀번호 |
FTP 연결이 완료되면 FileZilla의 화면이 아래와 같을 것이다.
이것으로 FTP를 통해 파일을 전송할 수 있게 되었다.
#6. Java JDK 1.8 설치하기
사전에 INSTALL한 비상호작용 네트워크 다운로더를 WGET 명령을 이용하여 JDK 1.8.202 파일을 다운로드 할 것이다.
Java JDK 1.8 ( https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html )
※ JAVA SE 8 ( 8u202 and earlier ) 버전을 사용하는 이유
Oracle이 2018년 7월부터 JAVA를 유료( Paid ) 구독형 라이센스로 개편하면서
JAVA SE 8 ( 8u211 and later ) 버전부터는 6개월 이후부터는 보안 업데이트가 이루어지지 않는 형태로 변경되었다.
그렇기 때문에 JDK 8 버전 이상을 무료( Free )로 이용하기 위해서는
Oracle이 아닌 Open JDK ( https://openjdk.java.net/ )를 통해 이용하면 된다.
01) JDK 다운받기
wget 명령을 이용하여 jdk-8u202-linux-x64.rpm 파일을 다운받을 것이다.
아래 명령을 복사하여 설치를 진행한다.
$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.rpm
~~ 이 하 생 략 ~~
HTTP request sent, awaiting response... 200 OK
Length: 4100 (4.0K) [text/html]
Saving to: ‘jdk-8u202-linux-x64.rpm’
100%[===========================================================================================================================>] 4,100 23.0KB/s in 0.2s
YYYY-MM-DD HH:MM:SS (23.0 KB/s) - ‘jdk-8u202-linux-x64.rpm’ saved [4100/4100]
02) JDK 설치하기
위와같이 jdk-8u202-linux-x64.rpm의 다운이 완료되었다면 jdk의 설치를 진행한다.
$ sudo rpm -ivh jdk-8u202-linux-x64.rpm
준비 중... ################################# [100%]
Updating / installing...
1:jdk1.8-2000:1.8.0_202-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
※ wget 명령을 통해 다운로드가 계속 실패하는 경우
혹 wget 명령을 통해 Java JDK 1.8 버전의 다운이 실패한다면
이 경우 직접 jdk-8u202-linux-x64.rpm 파일을 다운받고 SFTP 파일 전송 프로그램을 통해
직접 서버에 다운받은 jdk-8u202-linux-x64.rpm 파일을 업로드하여 설치를 진행하도록 하자.
( Java JDK 1.8버전을 다운받기 위해서는 Oracle 웹 사이트의 계정이 필요하기에 문제가 될 수 있다. )
FileZilla( https://filezilla-project.org/ ) 다운로드
03) JDK 버전 확인
$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
04) 사용자 계정에 JDK 환경변수 설정
참고 : [CentOS7] Oracle JDK 1.8 설치 및 환경변수 설정
#7. Apache Tomcat 8.5 설치하기
Apache Tomcat 8.5 다운로드 : https://tomcat.apache.org/download-80.cgi
※ Apache Tomcat 8.5 버전을 사용하는 이유
해당 포스팅은 Oracle Java JDK 1.8.202 버전을 설치하였고,
JDK 1.8 버전의 경우 Apache Tomcat 9 버전까지 호환된다.
그렇기에 비슷한 시기에 나온 Apache Tomcat 8.5를 사용한다.
01) Apache Tomcat 다운로드
$ wget https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.버전/bin/apache-tomcat-8.5.버전.tar.gz
--YYYY-MM-DD HH:MM:SS-- https://mirror.navercorp.com/apache/tomcat/tomcat-8/v8.5.버전/bin/apache-tomcat-8.5.68.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: 10559131 (10M) [application/octet-stream]
Saving to: ‘apache-tomcat-8.5.68.tar.gz’
100%[===========================================================================================================================>] 10,559,131 1.84MB/s in 6.2s
YYYY-MM-DD HH:MM:SS (1.63 MB/s) - ‘apache-tomcat-8.5.68.tar.gz’ saved [10559131/10559131]
02) 다운받은 Apache Tomcat 압축해제
$ sudo tar zxfv apache-tomcat-8.5.버전.tar.gz -C /usr/local
apache-tomcat-8.5.버전/conf/
apache-tomcat-8.5.버전/bin/
apache-tomcat-8.5.버전/lib/
apache-tomcat-8.5.버전/logs/
apache-tomcat-8.5.버전/temp/
apache-tomcat-8.5.버전/webapps/
~~ 이하 생략 ~~
03) Apache Tomcat Port 및 Unicode 변경
$ sudo vim /usr/local/apache-tomcat-8.5.버전/conf/server.xml
<?xml version='1.0' encoding='utf-8'?>
~~ 이 하 생 략 ~~
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
-->
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
~~ 이 하 생 략 ~~
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
protocol="AJP/1.3"
redirectPort="8443"
URIEncoding="UTF-8"/>
~~ 이 하 생 략 ~~
</Service>
</Server>
04) Apache Tomcat 실행 및 종료
① Apache Tomcat 실행( startup.sh )
$ sudo sh /usr/local/apache-tomcat-8.5.버전/bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.버전
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.버전
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.버전/temp
Using JRE_HOME: /
Using CLASSPATH: /usr/local/apache-tomcat-8.5.버전/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.버전/bin/tomcat-juli.jar
Tomcat started.
② Apache Tomcat 종료( shutdown.sh )
$ sudo sh /usr/local/apache-tomcat-8.5.버전/bin/shutdown.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.버전
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.버전
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.버전/temp
Using JRE_HOME: /
Using CLASSPATH: /usr/local/apache-tomcat-8.5.버전/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.버전/bin/tomcat-juli.jar
05) Web Broswer를 통한 Apache Tmcat 구동 여부 확인
Apache Tomcat을 설치한 Linux Server의 IP 주소를 조회하고
위에서 변경한 PORT번호 8181을 브라우저상에 입력해 보자.
http://Linux서버IP주소:8181
위와 같이 화면이 브라우저에 노출되면
Apache Tomcat 설정 및 방화벽( FireWall ) 설정까지 성공적으로 마무리 한것을 확인 할 수 있다.
'LINUX > CentOS' 카테고리의 다른 글
[Linux] CentOS7 - HTTPS 접속을 위한 Apache 웹 서버의 Mod_Proxy 설정 (0) | 2022.11.15 |
---|---|
[Linux] CentOS7 - GIT을 이용한 버전관리 시스템 구축 (0) | 2021.07.04 |
[Linux] CentOS7 - Java Web 서버 - Oracle 설치 및 설정 (0) | 2021.07.04 |
[Linux] CentOS7 - Java Web 서버 - 실운영을 위한 Tomcat 설정 (1) | 2021.07.01 |
[Linux] VirtualBox6 가상머신을 이용한 - CentOS7 설치 (0) | 2021.06.29 |