넓고얕은지식사전

VMware로 CentOS7에 톰캣(tomcat) 서버 구축하기 본문

IT/서버

VMware로 CentOS7에 톰캣(tomcat) 서버 구축하기

맛난이 2021. 5. 17. 13:56
반응형

서버 구축 개요 

서버를 만들어 보자  

 

모름지기 서버란 결국 컴퓨터다  

서버를 구축하려면 컴퓨터가 필요한데 구매를 하기엔 비용적으로나 공간적으로나 낭비가 크다 

따라서 많은 개발자들이 가상머신을 통해서  구축을 하는데  경우 내PC의 일정 부분을 할애해서 쓰기때문에 여러모로 편리하다. 

 

1. 가상머신 설치 

가상머신 하면 Vmware, Virtualbox  대표적이다 모바일 환경은 녹스, 모모 등이 있다. 

Vmware는 무료버전(workstation player)유료(workstation Pro)가 있다  

 

Virtualbox는 네트워크 구성에서  설정해야 하는게 있는데  이게  귀찮다. 

 

그래서 주로 Vmware workstation player 사용한다. 

 

다운로드 경로 : https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html 

순서 : Try Workstation 16.0 Player for Windows  DOWNLOAD NOW > exe파일 실행 > 기본설정으로 설치 

 

2. Vmware 실행 

2-1. 아래이미지와 같이 나왔다면 이제  Create a New Virtual Machine 버튼을 눌러서 가상머신을 만들어주자 

 

2-2. I will install the operating system later.... 

 

2-3.   

 

2-3. Disk size는 20GB면 충분하다충분하다.바로 20GB를 잡아먹는게 아니니 겁먹지 말자 

 

 

 

2-4. 잘만들어 졌다 . 

현재 이건  깡통이다 OS파일을 가지고 설치를 해야 구동이 된다. 별도로 ISO 파일을 받아야 한다. 

3. CentOS 다운받기 

 

버전에 대한 이해 

7.0, 7.1, 7.7, 8.0 뭐 여러 버전이 있다. 

대충 설명하면 기존 버전 보다 새로운 시도가 필요할때  앞자리가 바뀐다. 7.X > 8.0! 

 

새로운 버전을 출시했다고 완전하지는 않다. 그래서 계속 버그도 잡고 개선을 하게된다하게 된다. 8.1 > 8.2 > 8.3 

 

 그러면 버전이 최신것이라고 무조건 좋을까??? 정답은 X 

 버전일수록  세월동안 많은 사람들이 분석을 해왔다. 

 

따라서 내가 무슨 문제에 직면했을때 찾아볼 자료들이 많다. 새로운 버전은 내가 직접 원인을 찾아가면서 해결해 가야한다. 

 

 학습자라면 모름지기 구버전을 택한다. 

 회사 서버에서 사용하고 있기때문에 centos-7-x86_64-dvd-1908 버전을 쓴다. 

적당히 7버전대에서 선택하는것이 무난하다. 

 

 

 

 

 

다운로드 경로 : http://gofile.me/6SaID/poWEO3ULf

 

Access via Synology

Click here to open the link

gofile.me

 

 

4. CentOS 설치하기 

4-1. Vmware로돌아가기 >  Edit virtual machine settings > CD/DVD (IDE) > USE ISO image file > 다운받은 iso 파일 열기 

 

4-2. Network Adapter 클릭 > Bridged : Connected directly to the physical network 클릭 

 

이건 중요한부분으로 조금만 설명하면... 

 NAT는  PC의 네트워크를 그대로 받아서 사용한다고 이해하면 된다. 

어뎁터에 브리지는 내  PC가 연결된 공유기에  랜선을가지고 가상머신에 꽂았다고 이해하면 된다. 

 

 

 

4-3. 가상머신 실행 

 

4-4. Install CentOS 7  

 

4-5. 한국어 > 계속진행 

 

4-6. 설치대상 클릭  

 

4-7. 완료 클릭  

4-8. 네트워크  호스트명 클릭 

 

4-9. 켬으로 변경 

이때의 연결정보를  남겨놓자(IP주소, 서브넷 마스크, 디폴트 라우트, DNS 등) 

> 완료 클릭 

 

 

4-10. 설치시작 클릭 

 

4-11. ROOT 암호 클릭 > 암호설정 (잊어버리면 클남) 

사용자 생성은 필수는 아님! 

 

4-12. root 계정 로그인 

root계정이란 모든 권한을 가진 최상위 계정이다 

5.  외부 네트워크 연결 확인 

ping  8.8.8.8

ping 명령어는 원하는 경로의 ip주소로 신호를 보낸다. 정상적으로 연결이 됬다면 응답을 보내온다. 8.8.8.8은 구글의 dns서버 주소이다. 즉 구글과 통신이 된다는것은 인터넷 연결이  되었다는것을 의미한다. 

 

6. 고정ip 설정하기 

모든 PC는 기본적으로 IP 통신을 한다. 문제는 CentOS는 기본적으로 DHCP(동적 호스트 구성 프로토콜)프로토콜)로IP주소를 내려주는데 쉽게 말해서 그때그때 남는 IP를 준다는 것이다. 언제든 주소가 바뀔수 있다는것있다는 것.하나의 IP를 할당해 줘야 계속  서버에 접속할수가 있다. 

 

 

6-1. Putty  사용하기 

이제부터 명령어를 많이 쳐야하는데 VMware는 복붙이 번거롭다. 

 

Putty는원격접속 프로그램이다. 다운로드 해서 설치하자. 

다운로드 경로 : https://putty.softonic.kr/ 

 

앞전에 기록해둔  IP를 참고하자 > Alert 뜨면 "예 " 클릭 > root 계정으로 로그인 

6-2. 내 IP 확인하기 

ifconfig 

결과 : comand not found 

이유  CentOS최소설치시  명령어가 내장되어있지 않기 때문 따라서 별도의(net-tools) 설치가 필요하다. 

 

 

yum install net-tools

 

용량 써도 되니되니? (어 그럼그럼) 

Y + 엔터 

Y + 엔터 

 

설치가 됬으니 다시 ifconfig 

ifconfig 

Inet 192.168.123.192 부분이  서버의 IP주소이다. 

 

6-3. 다시 고정ip 설정하기에 앞서 nano  에디터를 설치 

nano에디터는 서버내에서 파일을 작성하거나 편집할수 있게 해주는 프로그램이다 

Vi에디터가 기본 내장되어있지만 초심자(=like me)는 익숙하지 않은 조작법에 매우 당황하게 된다. 

 

 

yum install nano -y 

 

명령어 뒤에 -y는 모두 yes한다는  아까 위에서의 Y + 엔터 과정을 생략할수 있다. 

 

네트워크를 설정하기 위한 경로로 이동 

(cd = change directory) 

 

cd /etc/sysconfig/network-scripts 

 

 

 

ls 명령어로 해당 경로에 있는 파일들을 확인해보자 

ls 

 

 

이중에 ifcfg-ens33이 내가 찾는 설정파일이다. 

 

 파일이름은 OS 버전마다 상이하므로  미리 확인해야 한다. 

 

이제 nano에디터로 파일을 수정한다 

빨간색이 수정된 내용이다 

IPADDR="192.168.123.80" 

GATEWAY="192.168.123.1" 

위 두 주소는 똑같이 타이핑 하면 안된다. 

본인의 네트워크 상황 따라 다르므로 확인이 필요하다. 

 

nano ifcfg-ens33 

TYPE="Ethernet" 
PROXY_METHOD="none" 
BROWSER_ONLY="no" 
#BOOTPROTO="dhcp" 
DEFROUTE="yes" 
IPV4_FAILURE_FATAL="no" 
IPV6INIT="yes" 
IPV6_AUTOCONF="yes" 
IPV6_DEFROUTE="yes" 
IPV6_FAILURE_FATAL="no" 
IPV6_ADDR_GEN_MODE="stable-privacy" 
NAME="ens33" 
UUID="b16aa789-f661-4e15-9264-a9391427603d" 
DEVICE="ens33" 
ONBOOT="yes" 
BOOTPROTO="static" 
IPADDR="192.168.123.80" 
GATEWAY="192.168.123.1" 
DNS1="168.126.63.1" 

 

 작성했으면 Ctrl + X  

저장할 거니? 

Y + 엔터 

 

수정된 파일을 반영해야 한다. 

네트워크 재실행 

systemctl restart network 

 

 

제대로 됬으면 putty가 먹통일것이다. 

왜냐면 변경하기 이전의 IP주소로 통신을 하고있었는데 IP주소가 바뀌었기 때문. 

 

변경된 IP주소로 다시 putty  연결하자  

 

 

ifconfig로변경된 정보를 확인해본다. 

ifconfig 

 

7.  톰캣 설치하기 

톰캣은 JAVA언어로 작성된 웹컨테이너이다웹 컨테이너이다.  지금까지가 PC 환경설정이었다면 웹컨테이너 서버에 올리는 지금부터 흔히 웹서버라는 이름으로 불릴만한 상태가 되는것이다. 

 

웹 컨테이너는우리가 작성하는  프로그램을 자동으로 확장시켜서 외부에서 오는 요청에 응답을 해준다. 

 

예를 들어index.html이란 페이지를 요청하면  index.html 파일을찾아서 클라이언트에게 전송하여 보여준다. 

 

만약 이때 index.jsp란 파일에 1+1 연산이되는 프로그램을 호출하도록 작성 되어있다면 그프로그램으로 가서 연산도 해준다. 

(물 1+1을 연산해주는 프로그램은 개발자가 미리 작성해놔야 한다.) 

 

7-1. 자바 설명 

  • 리눅스에서도 JDK와 JRE는 별도의 패키지이다. 
    • java-버전-openjdk 패키지가 JRE, 
    • java-버전-openjdk-devel 패키지가 JDK라고 생각하면 된다. 
  • JDK가 JRE에 의존성이 있다. 
  • yum으로 JDK를 설치하라고 하면 JRE를 먼저 설치한다. 

 

7-2. 자바 버전 확인 

javac –version 

 

 버전은 java를 내장하고 있지 않다. 

 

7-3. 자바 설치(없는경우) 

yum install -y java-1.8.0-openjdk-devel 

 

 

 

7-4. 자바설치 경로 확인 

which javac 

 

 

readlink -f /bin/javac 

 

7-5. JAVA 환경설정 

JAVA를 쓰려면 JAVA가 계속 호출될수 있도록 경로를 연결해 줘야한다. 

그래서 위에서 자바설치경로를 확인해둔것. 

 

nano로 profile을 수정하자.

nano /etc/profile

 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64

##최 하단부에  위 내용 추가 (경로는 readlink -f /bin/javac로 확인된 경로 참고)  

 

작성 다했으면 

Ctrl + X  

Y + 엔터 

 

수정한 파일을 적용 

source /etc/profile 

 

 

 

환경설정 확인 

echo $JAVA_HOME

 

아까 설정한 경로가 올바르게 나오면 성공! 

 

 

7-6. 톰캣 설치 

 

다운로드에 앞서 yum 버전 업그레이드가 필요하다.(오래걸린다.) 

sudo yum update 

 

 

wget도 설치해야한다설치해야 한다. 서버로부터 콘텐츠를 가져오는  프로그램)

sudo yum install wget 

 

 

톰캣을 설치할 경로로 이동 

cd /usr/local/lib 

 

wget으로 톰캣을 다운로드 하자 

wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.9/bin/apache-tomcat-8.5.9.tar.gz   

 

 

톰캣 압축풀기 

tar zxvf apache-tomcat-8.5.9.tar.gz 

 

  

톰캣 실행 

cd /usr/local/lib/apache-tomcat-8.5.9/bin 
./startup.sh 

 

톰캣 종료(종료할때 쓴다 =이건 참고사항) 

cd /usr/local/lib/apache-tomcat-8.5.9/bin 
./shutdown.sh 

 

 

서버 재부팅시 톰캣 자동실행하기 (이걸 안 하면 시스템 재부팅 시에 매번 실행해줘야 한다.)

우선 경로이동 부터  

cd /etc/rc.d/init.d/ 

 

nano 에디터로 nano tomcat_auto_start파일 작성 

nano tomcat_auto_start 

 

 

#!/bin/bash 

# Startup script for the Tomcat Server 

# chkconfig: 345 50 50 

# description: Tomcat is a Web application server. 

# processname: java 

# directory : CATALINA_HOME=/usr/local/lib/apache-tomcat-8.5.9 

source /etc/profile 

export CATALINA_HOME=/usr/local/lib/apache-tomcat-8.5.9 

case "$1" in 

    start) 

        echo "Starting tomcat: " 

        su - root -c $CATALINA_HOME/bin/startup.sh 

        ;; 

    stop) 

        echo "Shutting down tomcat: " 

        su - root -c $CATALINA_HOME/bin/shutdown.sh 

        ;; 

    restart) 

        echo "Restarting tomcat: " 

        su - root -c $CATALINA_HOME/bin/shutdown.sh; 

        su - root -c $CATALINA_HOME/bin/startup.sh 

        ;; 

    *) 

        echo "Usage: service tomcat {start|stop|restart}" 

        exit 1 

esac 

exit 0 

 

작성한 파일 적용하자

chown root:root tomcat_auto_start 
chmod 755 tomcat_auto_start 
chkconfig --add tomcat_auto_start
chkconfig --list tomcat_auto_start 

 

 

포트 열기

firewall-cmd --zone=public --add-port=8080/tcp --permanent 

 

포트 닫기(= 닫아야 할때 참고)

firewall-cmd --permanent --zone=public --remove-port=8080/tcp 

 

  

포트 범위 (=범위로 설정할 때 참고)

firewall-cmd --permanent --zone=public --add-port=8080-8090/tcp  

 

 

80번 포트 접속시 8080포트로 리다이렉트 시키기 

첫 번째는외부에서 접속하는 클라이언트를 위한것 

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent 

 

 

둘째는 localhost를 위한것 

firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp -o lo --dport 80 -j REDIRECT --to-port 8080 

 

 

수정사항 반영을 위해 방화벽 재실행 

systemctl restart firewalld 

또는 

firewall-cmd --reload 

 

 

열린 포트확인하기 

firewall-cmd --zone=public --list-all 

서버 연결 테스트 

http://192.168.123.80:8080/ 

아래 고양이 화면이 나왔다면 서버 구축은 끝났다. (짝짝)

 

 

ROOT 폴더 백업 (= 패치 전 주기적으로 해둬야 낭패를 막는다.) 

cd /usr/local/lib/apache-tomcat-8.5.9/webapps/ 
tar -cvf ROOT_backup_20210504.tar ROOT 

##tar –cvf [파일명] [폴더명] 

 

 

ROOT폴더 복구 

tar –xvf ROOT_backup_20210504.tar 

 

 

ROOT 폴더 비우기 

cd /usr/local/lib/apache-tomcat-8.5.9/webapps/ROOT 
rm -rf ./* 

## 꼭 경로이동 했는지 확인하자!안 그럼 다 날라간다!

반응형
Comments