0. MySQL 연결하기
DB_HOST=192.168.55.157
DB_PORT=3306
DB_USER=user
DB_PASSWORD=1111
DB_NAME=sys
- 위와 같이 .env 파일로 환경변수를 관리해주고 있었다.
- 지금은 로컬피시(localhost)에서 ubuntu(192.168.55.157)의 mysql로 연결해주기 때문에 위와 같이 환경변수를 설정해주고 있다.
- 그렇다면 ubuntu에서 ubuntu mysql로 접속할 때는 DB_HOST를 localhost로 바꿔주어야할까?
- 그럴 필요는 없다. 바꾸지 않아도 잘 작동한다.
1) virtual box의 네트워크 세팅
- 어댑터에 브리지로 네트워크 설정을 바꿔준다.
- 그리고 ubuntu 터미널 내에서 ip addr 명령어를 통해 우분투 ip 주소를 확인할 수 있다.
1. ubuntu 세팅하기
1) 아래 명령어를 통해 ssh 서비스가 잘 동작하는지 확인한다.
$ service --status-all
- 이미 설치되어 잘 동작한다면 위 그림과 같이 서비스 목록에 + 값으로 표시된다.
- 없다면 다음 단계를 통해 설치하면 된다.
2) openssh 설치
sudo apt update
sudo apt install openssh-server
- 위 코드를 통해 설치하고 아래 코드들을 통해 ssh실행 여부를 확인하고, 활성화가 안되있다면 활성화 할 수 있다.
# ssh 실행 여부 확인
$ sudo systemctl status ssh
# ssh 서비스 활성화 및 시작
$ sudo systemctl enable ssh
$ sudo systemctl start ssh
3)ubuntu 접속 하기
# ssh -p 포트번호 계정명@서버IP주소
# 포트는 22번,계정명은 tuna, 서버 주소는 192.168.55.157
$ ssh -p 22 user@192.168.55.157
혹은 그냥 포트 번호 없이 접속해도 된다.
$ ssh user@192.168.55.157
- 위 명령어를 입력한 후 비밀번호를 입력하면 접속이 완료된다.
2. nodejs 세팅하기
1) ssh로 접속한 이후 아래 명령어들을 따라 수행한다.
//git 설치 확인 및 설치
git --version
sudo apt update
sudo apt install git
//node.js와 npm 설치 확인
node -v
npm -v
sudo apt update
sudo apt install nodejs npm
2) github 레포지토리를 클론한다.
- 특정 레포지토리의 특정 브랜치를 아래 명령어와 같이 클론해준다.
- 이때 프로젝트 디렉토리도 설정해주면 좋다.
// 프로젝트 디렉토리 설정과 이동
mkdir ~/my-project
cd ~/my-project
// 레포지토리와 특정 브랜치 클론 하기
git clone -b J205 https://github.com/HBLEEEEE/web-p1-taskify.git
- 이때 github username과 password를 입력하라는 문구가 나오는데
- username은 사용하는 깃헙 유저 네임을 입력하면 되지만
- password는 말 그대로 password를 입력하면 안된다.
- 진짜 패스워드를 입력하면 아래 문구가 출력되면서 클론되지 않는다.
- remote: Support for password authentication was removed on August 13, 2021.
- password말고 github에서 토큰을 발급받아서 그 토큰을 입력해주어야 한다.
- 토큰 발급은 맨 아래 참고를 참조하면 된다.
3) 해당 경로에서 모듈을 설치한다.
npm install
4) 필요하다면 환경 변수도 설정해 준다.
touch .env // .env 파일 생성
nano .env // .env 파일 수정
5) npm start로 서버를 실행해 준다.
6) 버전 차이로 발생한 문제
const connection = await mysql.createConnection({
^^^^^
SyntaxError: Unexpected reserved word
- 위와 같이 npm start로 실행했을 때 await를 못읽는 문제가 발생했다.
- 이것은 버전 차이로 발생한 문제로 ubuntu에 깔려있는 node 버전을 최신화 해줘야한다.
// nodejs와 npm을 최신버전으로 설치
sudo apt-get update
sudo apt-get install -y nodejs npm
sudo npm install -g n
sudo n stable
3. 무중단 배포 실행하기
1) pm2를 전역으로 설치하기
npm install -g pm2
2) 디렉토리에서 다음 명령어를 사용하여 서버를 실행한다.
pm2 start npm --name "my-server" -- start
- "my-server"는 프로세스를 구분하기 위한 이름으로 편하게 바꿔도 된다.
3) pm2로 서버 관리하는 명령어
- pm2 status : 실행 중인 프로세스와 상태를 확인한다.
- pm2 logs my-server : 실행 중인 서버의 로그 확인
- pm2 stop my-server : 서버를 종료
- pm2 restart my-server : 서버를 재시작
- pm2 startup : 서버가 시스템 재부팅 후 자동으로 시작되도록 설정
5. 참고
1) ubuntu ssh로 접속하기 : https://www.bearpooh.com/95
3) 버추얼박스 myslq 접속하기 : https://mentha2.tistory.com/188