디케이
[리눅스]Linux 초기 셋팅 및 톰켓 연결, 도메인 연결 본문
반응형
2021, CentOS, 자바웹서비스 배포 페이지, to2.kr/b1h
관련링크
1강, 네이버클라우드플랫폼 개요
2강, 콘솔에서 서버생성, ACG생성, 키파일생성
3강, 공인IP 할당 및 관리자비번 확인, 루트비번 변경
4강, SSH 접속용 IP와 포트생성
5강, 서버와 관련객체들 중지하고 반납하는 방법
6강, 메인계정 생성, yum install epel-release, yum update -y
- 루트계정 비번변경
- passwd root
- or
- passwd
- 메인계정 생성 및 비번설정
- useradd sbsst
- passwd sbsst
- sbsst 계정으로 putty 재접속
- root@
~ => sbsst@
- root@
- su 로 root 로그인
- su root
- 로그아웃 하려면
- exit
- sudoers 명단에 sbsst 계정 추가
- vim /etc/sudoers
- ESC키
- /root 입력 후 엔터키
- n키 두번
- A
- 입력모드로 전환
- sbsst 계정을 명단에 추가
- root 계정 밑에 추가
- 탭으로 구분
- ESC키
- :wq! 입력 후 엔터키
- sbsst 계정으로 돌아가기(root에서 로그아웃)
- exit
- yum의 검색범위 넓히기
- sudo yum install epel-release
- yum으로 설치된 모든 프로그램 최신 업데이트(최신 보안 패치를 위해)
- sudo yum update -y
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 6강, 메인계정 생성, yum install epel-release, yum update -y
7강, 도메인 연결
- dnszi.com 접속 후 로그인
- 해당 도메인 설정페이지로 이동
- 공인IP에 대해서 a 레코드 작업
- 접속용IP에 대해서 a 레코드 작업
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 7강, 도메인 연결
8강, OPENJDK 설치
- 설치가능한 JDK 버전 검색
- sudo yum list java*jdk-devel
- 최신버전의 JDK 설치
- sudo yum install java-latest-openjdk-devel.x86_64
- 버전확인
- java --version
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 8강, OPENJDK 설치
9강, 톰캣설치 및 실행
- Tomcat 프로그램을 실행할 전용 사용자계정(tomcat) 을 생성
- sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
- 톰캣 다운로드
- 압축해제
- tar -xf apache-tomcat-9.0.36.tar.gz
- 혹시 모르니 기존의 /opt/tomcat 디렉토리 제거
- sudo rm -rf /opt/tomcat
- /opt/tomcat 디렉토리 생성
- sudo mkdir /opt/tomcat
- 압축해제된 폴더를 옮김
- sudo mv apache-tomcat-9.0.36 /opt/tomcat
- 심볼릭 링크 걸리
- sudo ln -s /opt/tomcat/apache-tomcat-9.0.36 /opt/tomcat/latest
- 해당 폴더와 파일들의 소유권을 tomcat 계정으로 설정
- sudo chown -R tomcat: /opt/tomcat
- /opt/tomcat/latest/bin/*.sh 파일들이 실행될 수 있도록 처리
- sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
- 데몬으로 등록
- sudo vim /etc/systemd/system/tomcat.service
- A 입력
- 하단내용 입력
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
- 데몬 매니저 리로드
- sudo systemctl daemon-reload
- 운영체제가 부팅될 때 자동실행
- sudo systemctl enable tomcat
- 톰캣실행
- sudo systemctl start tomcat
- 종료하고 싶으면
- sudo systemctl stop tomcat
- 실행중인지 확인하고 싶으면
- sudo systemctl status tomcat
- 재실행 하고 싶으면
- sudo systemctl restart tomcat
- 톰캣의 웹 관리자 계정 생성
- sudo vim /opt/tomcat/latest/conf/tomcat-users.xml
- 하단내용 입력
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-script"/>
<user username="admin" password="sbs123414" roles="manager-gui,admin-gui,admin-script,manager-script"/>
<user username="deployer" password="sbs123414" roles="manager-script"/>
</tomcat-users>
- 원격지에서 manager 프로그램을 이용할 수 있도록 허용
- sudo vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml
- Value 엘리먼트 주석처리
- 원격지에서 host-manager 프로그램을 이용할 수 있도록 허용
- sudo vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
- Value 엘리먼트 주석처리
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 9강, 톰캣설치 및 실행
10강, 톰캣의 호스트와 웹앱 개념
- 톰캣에는 여러개의 호스트가 존재할 수 있다.
- 호스트에는 여러개의 앱이 존재할 수 있다.
- 호스트는 도메인이라고 생각하면 된다.
- 최초에는 디폴트 호스트 1개가 존재한다.
- 최초에 디폴트 호스트에는 5개의 웹앱이 존재한다.
- 디렉토리 : /opt/tomcat/latest/webapps
- 각 호스트에는 ROOT 웹앱이 1개씩 존재한다.
- 디폴트 웹앱의 폴더명 : ROOT
- 디폴트 호스트의 ROOT 웹앱의 주소
- 디폴트 호스트의 docs 웹앱의 주소
- 호스트에는 manager라 불리는 특수 웹앱이 존재한다.
- 디폴트 호스트의 manager 웹앱의 주소
- 톰캣에 호스트가 10개라면 매니저도 10개이다.
- 톰캣에는 호스트매니저가 딱 1개 존재한다.
- 호스트 매니저에서는 호스트를 추가/삭제 할 수 있다.
- host-manager 웹앱의 주소
- IP 확인방법, nslookup
- cmd
- nslookup 도메인
- IP 확인방법, 직접확인
- ncloud 콘솔에서 확인
, 톰캣의 호스트와 웹앱
- ncloud 콘솔에서 확인
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 10강, 톰캣의 호스트와 웹앱 개념, 1부
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 10강, 톰캣의 호스트와 웹앱 개념, 2부
11강, 톰캣에 호스트 추가 후 배포
- 톰캣 원격지에서 설정 저장 가능하도록 허용
- sudo vim /opt/tomcat/latest/conf/server.xml
- 하단의 Listener 엘리먼트를 Server 엘리먼트의 자식으로 추가
<?xml version="1.0" encoding="UTF-8"?>
<Server>
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
...
</Server>
- 이어서
- sudo systemctl restart tomcat
- 호스트 매니저 접속
- http://IP:8080/host-manager
- 이름, 별칭들, 앱 base 에 추가하려는 도메인 입력 후
추가
버튼 클릭- ex : devly.oa.gg
- 하단의
저장 환경 설정
에서전부
- 만약에 추가가 안된다면 아래 명령어 입력 후 다시 시도
- sudo updatedb
- sudo locate devly.oa.gg
- sudo rm -rf /opt/tomcat/apache-tomcat-9.0.36/devly.oa.gg
- sudo rm -rf /opt/tomcat/apache-tomcat-9.0.36/conf/Catalina/devly.oa.gg
- sudo rm -rf /opt/tomcat/apache-tomcat-9.0.36/work/Catalina/devly.oa.gg
- 테스트 프로젝트 생성
- 이클립스 패키지 explorer에서 프로젝트 선택후, Alt + Enter
- Project Facets => Java 버전으로 14 이하로 수정
- 배포
- 이클립스 패키지 explorer에서 프로젝트 우클릭
- Export
- War file 선택
- Optimize for a specific server runtime 체크
- Apache Tomcat 9.0 선택
- Export source files 체크
- Overwrite existing file 체크
- Destination : 바탕화면/ROOT.war
- 파일질라로 서버접속
- 접속명
- sbsst@access도메인
- 프로토콜 : SFTP
- 업로드 경로 : /opt/tomct/lastest/devly.oa.gg
- 접속명
- 접속확인
- 웹앱제거
- http://devly.oa.gg:8080/manager
- 루트 웹앱 제거
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 11강, 톰캣에 호스트 추가 후 배포, 1부
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 11강, 톰캣에 호스트 추가 후 배포, 2부
12강, 마리아 DB 설치
- 마리아DB 삭제
- sudo yum remove mariadb
- sudo rm -rf /var/lib/mysql
- sudo rm -rf /etc/my.cnf*
- 마리아DB 설치
- sudo vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
- sudo yum install MariaDB-server MariaDB-client -y
- sudo vim /etc/my.cnf.d/mysql-clients.cnf
- 아래 코드 추가
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
- sudo vim /etc/my.cnf.d/server.cnf
- 아래 코드 추가
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
- 마리아DB 활성화(매 부팅마다 자동으로 켜짐)
- sudo systemctl enable mariadb
- 마리아DB 켜기
- sudo systemctl start mariadb
- 마리아DB 초기세팅(단 1회만 하면 됩니다.)
- sudo /usr/bin/mysql_secure_installation
- Switch to unix_socket authentication [Y/n] n
- 나머지 모든 것을 Y로 설정
- sudo /usr/bin/mysql_secure_installation
- 마리아DB 접속
- mysql -u root -p
- 마리아DB 접속 상태에서 관리자 회원 만들기
grant all privileges on *.* to sbsst@'%' identified by 'sbs123414'
;grant all privileges on *.* to sbsst@'localhost' identified by 'sbs123414'
;
- 마리아DB 접속 상태에서 로컬접속전용관리자 회원 만들기
grant all privileges on *.* to sbsstLocal@'localhost' identified by 'sbs123414'
;
- 톰캣 운영모드 활성화
- /opt/tomcat/latest/bin/setenv.sh
- 아래 코드 입력
- /opt/tomcat/latest/bin/setenv.sh
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=production"
- 배포 전 환경별 DB접속정보 분기로직 적용
- 기존코드
MysqlUtil.setDBInfo("127.0.0.1", "sbsst", "sbs123414", "jspCommunity");
- 이어서
- 바뀐코드
String profilesActive = System.getProperty("spring.profiles.active");
boolean isProductionMode = false;
if (profilesActive != null && profilesActive.equals("production")) {
isProductionMode = true;
}
if ( isProductionMode ) {
MysqlUtil.setDBInfo("127.0.0.1", "sbsstLocal", "sbs123414", "jspCommunity");
}
else {
MysqlUtil.setDBInfo("127.0.0.1", "sbsst", "sbs123414", "jspCommunity");
}
- 배포
- ROOT.war
- or
- 해당 앱의 원래 컨텍스트명.war
- 경우에 따라서 ROOT.war로 안되는 경우도 있다.
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 12강, 마리아DB 설치 및 DB세팅 및 배포, 1부
- 동영상 - 2021 02 03, CENTOS7 자바웹사이트배포, 12강, 마리아DB 설치 및 DB세팅 및 배포, 2부
반응형