[WAS] Cent 7 서버 구축하기
이 WAS 서버는 Spring 기반 프로젝트를 대상으로 올리는 WAS 서버입니다.
보통 실제 프로젝트는 Web Was DB 3티어지만 여기서는 싱글티어로 설정합니다 참고 바랍니다.
1.가상 OS에 CentOS 7 iso 삽입
소프트웨어 선택 -> 기본 웹 서버 설치
비밀번호 설정 후 기다려줍니다.
2.IP 세팅
보통 기본으로 DHCP로 되어있습니다. IP를 정적으로 바꿔줍시다
vi /etc/sysconfig/network-scripts/ifcfg-ens랜덤숫자 (os마다 끝에 숫자가 다르다)
vi 에디터를 모르시는 분들은 vi 에디터 사용법 먼저 숙지하셔야 됩니다.
편하게 복붙용
BOOTPROTO="static"
IPADDR="172.10.0.35"
GATEWAY="172.10.0.1"
DNS1="8.8.8.8" //구글 DNS
최종 IP 세팅
3.SSH 설치 (기본 웹서버로 설치하면 설치 돼있으므로 패스)
4.JDK 설치 (여기서는 openjdk로 설치하겠습니다.)
(복붙하기 쉽게 코드블럭)
//yum list java*jdk-devel 설치 가능 java 버전들 확인
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
//설치 중간에 y 눌러줘야 한다.
//설치 확인
rpm -qa java*jdk-devel
javac 경로 확인
which javac //이건 심볼릭 링크 주소
java -version 확인
readlink -f /usr/bin/javac 명령어 //심볼링 링크의 원본 주소를 알려주는 명령어
설치를 하고나면 기본 경로는 /usr/lib/jvm/java-1.8.0-openjdk-~......가 된다
일단 이름이 너무 길고 경로도 통일 해주기 위해 이름과 경로를 변경한다.
cd /usr/lib/jvm/
mv java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/ openjdk-1.8
mv openjdk-1.8/ /usr/local/
5.apache-tomcat 설치 (tomcat 파일은 공식 톰캣 홈페이지에서 받을 수 있다.)
먼저 다운로드 받은 톰캣.tar 파일 FTP(FileZilla 사용)로 WAS 서버에 파일을 보낸다.
WAS 터미널에서 압축 풀기
tar -zxvf tomcatFileName.tar
gunzip //압축이 바로 안풀릴경우 이 명령어 실행
// 압축 풀기 후 이름 및 경로 설정
mv apache-tomcat-8.5.34 apache-tomcat
mv apache-tomcat /usr/local/
환경변수 설정
vi /etc/profile
export JAVA_HOME=/usr/local/openjdk-1.8
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export CATALINA_HOME=/usr/local/apache-tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
:wq
source /etc/profile //파일변경 후 적용 명령어 꼭 해줘야한다.
//환경 변수 확인
echo $JAVA_HOME
echo $CATALINA_HOME
방화벽 설정
//방화벽 포트 허용
firewall-cmd --permanent --zone=public --add-port=8080/tcp //tomcat
firewall-cmd --permanent --zone=public --add-port=80/tcp //web
firewall-cmd --permanent --zone=public --add-port=3306/tcp //mysql
firewall-cmd --permanent --zone=public --add-port=443/tcp // https
firewall-cmd --reload
firewall-cmd --list-all
톰캣 실행 테스트
/usr/local/apache-tomcat/bin/startup.sh
ifconfig //자기 서버의 IP 알아내기
인터넷 브라우저 URL에 자기 IP 검색
이렇게 고양이가 나오면 정상적으로 실행이 된것이다.
하지만 저 뒤에 붙는 :8080이 거슬린다 (실제 서비스 URL에도 보면 :8080 붙은 페이지는 없다)
vi /usr/local/apache-tomcat/conf/server.xml
<Connector port="80" protocol="HTTP/1.1" // port를 8080-> 80 으로 변경
URIEncoding="UTF-8" // 인코딩 추가
connectionTimeout="20000"
redirectPort="8443" />
/usr/local/apache-tomcat/bin/shutdown.sh
/usr/local/apache-tomcat/bin/startup.sh
그리고 다시 아이피를 입력해서 들어가면 8080 없이도 잘된다.
톰캣 자동실행 서비스 등록
WAS 서버가 갑자기 재부팅 되더라도 톰캣이 저절로 실행될 수 있게 자동실행 서비스를 등록한다.
/usr/local/apache-tomcat/bin/shutdown.sh //기존 실행 중이던 톰캣 종료
//vi /usr/lib/systemd/system/서비스이름.service
//저는 was01-tomcat이라고 하겠습니다.
vi /usr/lib/systemd/system/was01-tomcat.service
[Unit]
Description=tomcat8
After=network.target syslog.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/openjdk-1.8
User=root
Group=root
ExecStart=/usr/local/apache-tomcat/bin/startup.sh
ExecStop=/usr/local/apache-tomcat/bin/shutdown.sh
UMask=0007
RestartSec=10
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
서비스 관리
systemctl enable was01-tomcat.service //서비스 등록
systemctl start was01-tomcat.service //서비스 시작
ps -ef | grep was01-tomcat //확인
reboot //재부팅(팅김 상황 테스트)
ps -ef | grep was01-tomcat //재부팅후 서비스가 올라왔나 확인
WAR 파일(웹 프로젝트 파일) 올리기
먼저 FTP로 WAR 파일을 WAS 서버로 전송
이때 WAR 파일 이름을 ROOT.war로 저장한다.
mv ROOT.war /usr/local/apache-tomcat/webapps/
6.MariaDB 설치
yum install mariaDB 로 설치해도 되지만 버젼이 5.5이다.
MariaDB.repo 파일을 생성해주자
vi /etc/yum.repos.d/MariaDB.repo
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
#64비트인경우
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
//저장 후
yum remove mariadb-server mariadb-libs -y //기존에 설치되어있는 MariaDB 서버 라이브러리 삭제
yum install MariaDB-server MariaDB-client MariaDB-common -y
설치 후 인코딩 설정
vi /etc/my.cnf
[mysqld]
character-set-server=utf8
//저장
mysql MaridDB 들어가보기
systemctl start mariadb // 실행
systemctl enable mariadb // 서비스 자동실행 등록
mysql -u root -p
Enter password: //처음에 설치했을땐 패스워드가 없기 때문에 그냥 엔터
//root 비밀번호 설정
show databases;
use mysql;
update user set password=password('새 비밀번호') where user = 'root';
flush privileges; // 적용
select user,password from user; // 확인
이로써 최~~~~~~~~~~~~소한의 WAS 서버가 완성됐다.
최종 정리
Centos 7 Server
openjdk 1.8.0
apache-tomcat 8.5.34
MariaDB 10.1