라즈베리파이(13) WAS서버 구축
라즈베리파이 WAS 서버
WAS 구축 개요
: 라즈베리파이에 WAS서버를 구축한다. WAS서버 제품은 대중적인 톰캣(Tomcat)
으로 결정했다.
WAS 서버 관리자 생성
: WAS 서버를 담당 관리하는 특정 관리자 계정을 생성한다.
userdel -r -f wasadm # 기존계정 삭제(이미 존재시)
vi /etc/skel/.bashrc # 계정을 생성하면 홈디렉토리에 기본적으로 생성되는 파일을 /skel 에서 미리 정의한다. (.bashrc 로긴시점수행파일)
mkdir /fswas # 커스텀한 관리용도의 사용자 디렉토리 생성
chmod 755 /fswas # 사용자생성시 홈디렉설정을 위해
groupadd -g 1001 wasadm # 커스텀한 관리용도의 사용자 그룹 생성
sudo useradd -m -d /fswas/wasadm -g wasadm -u 1001 wasadm # 계정 생성 (m:사용자명으로 자동생성, d: 디렉토리지정 skel 내용도 이기준으로 생성됨을 확인, g:그룹)
## 만약 여기서 실패하면 hostname 설정파일 2개를 모두 수정해주어야한다. ==> [라즈베리파이(5) 간단한 호스트네임 변경] 포스팅 이슈내용 참조
chown wasadm:wasadm /fswas #홈디렉터리가 있는 디렉터리를 wasadm전용으로 owner 변경
WAS 구축
자동설치와 수동설치
: 웹서버 구축 포스팅과 동일하게 WAS서버를 원하는 경로에 설치하고싶어서 수동설치
를 메인으로 진행한다.
JDK
: 사전에 JDK가 존재해야한다. 설치는 간단하므로 생략한다.
수동설치 (소스컴파일 방식)
: 소스컴파일방식의 수동설치를 진행한다.
- 1 공식홈페이지 톰캣 링크복사
- 톰캣을 링크를 복사한다. (현재 기준 8.5.82 버전으로 Core 부분에서 tar.gz 우클릭하고 복사한다.)
- 2 wget [링크] 명령어로 컴파일소스 다운로드
- 서버에 tar.gz 압축파일을 바로 다운로드 한다. (다운받은 tar.gz 는 관리하기 쉽게 별도 생성한 install 폴더에 넣었다.)
sudo apt-get update && sudo apt-get upgrade #패키지 업데이트 선행
mkdir /fswas/install # 톰캣압축보관 위치
cd /fswas/install
wget [복사한 링크]
- 3 다운받은 tar.gz 압축파일을 해제
- gunzip 명령어로 해제한다. (톰캣이라는 대분류폴더를 생성하고 그 안에 해제했다.)
mkdir /fswas/tomcat
mv /fswas/install/apache-tomcat-8.5.82.tar /fswas/tomcat # 톰캣압축해제 위치
cd /fswas/tomcat
gunzip apache-tomcat-8.5.82.tar
# .gz를 풀었으니 .tar만 해제하면 된다.
cd /fswas/tomcat
sudo tar -xvf apache-tomcat-8.5.82.tar
# Tomcat은 정기적으로 업데이트되므로 버전 및 업데이트를 보다 효과적으로 제어하기 위해 Tomcat 설치 디렉토리를 가리키는 최신 버전이라는 심볼 링크를 만든다. ex) lastver
sudo ln -s /fswas/tomcat/apache-tomcat-8.5.82 /fswas/tomcat/lastver
export TOMCAT_HOME=/fswas/tomcat/lastver # 환경변수 설정해두면
cd $TOMCAT_HOME # 이렇게 어디서든 접근할 수 있다. (적용은 env 명령어로 확인.)
- 4 설치 완료
- 특정 경로에 압축만 풀면 설치 완료이다.
- 5 환경변수 설정
- 톰캣서버 환경변수를 설정한다.
env | grep TOMCAT_HOME
# 아무것도 없을것이다.
# 아까만든 lastver 심볼릭 링크를 톰캣 환경번수로 잡아준다.
export TOMCAT_HOME/fswas/tomcat/latest
# 환경변수가 잘잡혔다.
env | grep TOMCAT
TOMCAT_HOME=/fswas/tomcat/latest
참고)
환경변수를 잡은 현재까지 발생한 이유는 톰캣설치시 디폴트설정에 catalina.out 로그가 TOMCAT_HOME 경로를 참조하고 있기 때문에 생성이 잘안되었다.
- 6 실행
- 톰캣서버를 실행한다.
sudo sh /fswas/tomcat/apache-tomcat-8.5.82/bin/startup.sh
Tomcat 톰캣 권한
톰캣 디렉토리 권한 부여
: 설치를 완료했으므로 실행, 중지를 위해 특정계정에게 WSA관련한 모든 디렉토리에 권한을 준다. 나는 wasadm 이라는 웹관리자 계정에게 권한을 위임했다.
# 아파치가 설치된 폴더전체에 웹관리자계정 권한을 준다.
sudo chown -R wasadm:wasadm /fswas # 옵션 -R 로 하위폴더 전체 변경
톰캣 재기동 쉘(루트대여) 권한 부여
: wasadm 계정이 재기동시 폴더 권한을 가져도 root권한이 없으면 안되는것으로 확인된다. wasadm에게 sudo 권한을 준다.
su
vi /etc/sudoers
# User privilege specification
root ALL=(ALL:ALL) ALL
pi ALL=(ALL:ALL) ALL
dbd000 ALL=(ALL:ALL) ALL
wasadm ALL=(ALL:ALL) ALL # 이렇게 추가
Tomcat 톰캣 쉘 스크립트
쉘 스크립트 생성
: 재기동, 상태체크 쉘 스크립트를 생성한다.
cd /fswas/wasadm/script/dbd
touch was_check.sh was_start.sh was_stop.sh //시작, 종료, 상태체크 쉘파일 생성
# 쉘파일 작성
touch was_start.sh # 서버시작
## 내용: sudo sh /fswas/tomcat/apache-tomcat-8.5.82/bin/startup.sh
touch was_stop.sh # 서버중지
## 내용: sudo sh /fswas/tomcat/apache-tomcat-8.5.82/bin/shutdown.sh
touch was_check.sh # 서버상태체크
## 내용: echo '================> ps -ef | grep java'
ps -ef | grep java
echo ''
echo '================> netstat -anp | grep java'
sudo netstat -anp | grep java
쉘 스크립트 전역alias 등록
: 어디서든 실행 가능하도록 alias를 등록한다.
# alias 등록
vi /etc/bash.bashrc
alias wasstop='sh /fswas/wasadm/script/dbd/was_stop.sh'
alias wasstart='sh /fswas/wasadm/script/dbd/was_start.sh'
alias wascheck='sh /fswas/wasadm/script/dbd/was_check.sh'
# 적용
source /etc/bash.bashrc
라즈베리파이 포트포워딩 설정
: 아직 웹서버 라즈베리파이와 연결하지 않았기 때문에 접속할 방법이 없다. 임시방편으로 외부에서는 어떤것이 라즈베리파이 서버인지 포트포워딩으로 알려주도록 한다.
테스트용으로 다음과 같이 포트포워딩 임시설정했다.
외부포트 9191 ==> 내부포트 8080
재부팅 후 9191 포트로 들어오면 was서버로 직접 접근한다.(이제 본격적으로 WEB WAS를 연동해야할것이다.)
Leave a comment