Ctrl + `
터미널 → 새 터미널
⌘ + `
Terminal → New Terminal
상단에 입력한 정보를 바탕으로 SSH 연결 명령어가 자동으로 완성됩니다.
아래 명령어를 터미널에 입력하여 SSH 연결이 정상적으로 되는지 확인하세요:
(예제) ssh -i C:/Users/kreun/OneDrive/Desktop/pem/restart.pem bitnami@3.39.72.120
ssh -i 폴더경로/파일명.pem bitnami@아이피
⚠️ 퍼미션 오류 발생시
👉 맥
chmod 400 경로/파일명.pem
👉 윈도우
.pem 파일 → 우클릭 → 속성(Properties)
보안(Securities) 탭 → 고급(Advanced) → 상속 사용 안함(Disable inheritance) → 이 개체에서 상속된 사용 권한 제거(Remove all inherited...)
추가(Add) → 보안 주체 선택(Select a principal) → 사용자 계정 이름 입력 후 확인
기본 권한(Basic permissions)에서 읽기(Read)만 체크 후 확인
적용(Apply) → 확인(OK)
sudo mkdir /opt/bitnami/projects; sudo chown $USER /opt/bitnami/projects; cd /opt/bitnami/projects; sudo npm install -g express-generator; express --view ejs chatbot; cd chatbot/; npm install; sudo npm install pm2 -g; sudo timedatectl set-timezone Asia/Seoul; timedatectl; sudo /opt/bitnami/ctlscript.sh restart apache; pm2 start ./bin/www --watch --time --name "bot" --ignore-watch="public/* data/* node_modules/*"; sudo cp /opt/bitnami/apache/conf/vhosts/sample-vhost.conf.disabled /opt/bitnami/apache/conf/vhosts/sample-vhost.conf; sudo cp /opt/bitnami/apache/conf/vhosts/sample-https-vhost.conf.disabled /opt/bitnami/apache/conf/vhosts/sample-https-vhost.conf; sudo /opt/bitnami/ctlscript.sh restart apache;
⚠️ 다음 오류가 발생하면:
[apache] Other action already in progress -- please try again later
👉 아래 명령어를 다시 실행하세요:
sudo /opt/bitnami/ctlscript.sh restart apache;
명령어 | 설명 |
---|---|
sudo mkdir /opt/bitnami/projects |
Bitnami 안에 새로운 폴더를 만들어요. 앞으로 이 안에 프로젝트를 넣을 거예요. sudo 는 관리자 권한으로 실행하겠다는 뜻이에요.
|
sudo chown $USER /opt/bitnami/projects |
방금 만든 폴더의 주인을 현재 사용자로 바꿔요. 그래야 파일을 만들거나 수정할 수 있어요. |
cd /opt/bitnami/projects |
그 폴더로 이동해요. 이제부터 여기에 프로젝트를 만들 거예요. |
sudo npm install -g express-generator |
Express 앱을 쉽게 만들 수 있게 도와주는 도구를 설치해요.-g 는 전역(global)으로 설치한다는 뜻이에요. |
express --view ejs chatbot |
ejs 템플릿을 사용하는 Express 앱을 만듭니다.프로젝트 이름은 chatbot 이에요. |
cd chatbot/ |
생성된 chatbot 폴더로 들어가요. |
npm install |
프로젝트에 필요한 라이브러리들을 자동으로 설치해요.package.json 파일을 보고 알아서 설치해줍니다. |
sudo npm install pm2 -g |
서버 프로그램을 계속 실행시켜주는 PM2 를 설치해요.서버가 꺼지더라도 자동으로 다시 켜줄 수 있어요. |
sudo timedatectl set-timezone Asia/Seoul |
서버 시간을 한국 시간(서울)으로 맞춰요. |
timedatectl |
서버의 현재 시간 설정을 확인해요. |
sudo /opt/bitnami/ctlscript.sh restart apache |
웹 서버(Apache)를 재시작해요. 설정이 바뀐 걸 적용하려면 재시작이 필요해요. |
pm2 start ./bin/www --watch --time --name "bot" --ignore-watch="public/* data/* node_modules/*"
|
Express 서버를 PM2 로 실행해요.--watch 는 파일 변경 시 자동으로 다시 시작해요.--time 은 로그에 시간을 보여줘요.--name "bot" 은 실행 이름을 bot 으로 지정해요.--ignore-watch 는 무시할 폴더를 지정해요.
|
sudo cp ...sample-vhost.conf.disabled ...sample-vhost.conf |
Apache의 HTTP 설정 파일을 활성화해요..disabled 확장자가 없어지면 사용 가능해져요.
|
sudo cp ...sample-https-vhost.conf.disabled ...sample-https-vhost.conf |
HTTPS (보안 접속) 설정 파일도 활성화해요. SSL 인증서를 사용할 수 있게 준비하는 과정이에요. |
sudo /opt/bitnami/ctlscript.sh restart apache |
설정 파일이 바뀌었으니 웹 서버(Apache)를 다시 시작해요. |
cd /opt/bitnami/projects/chatbot
pm2 startup
위 명령을 실행하면 다음과 같은 출력이 표시됩니다.
"생성된 명령어"가 표시되면 복사하여 붙여 넣기 해야 합니다. 예:
sudo env PATH=$PATH:/opt/bitnami/nodejs/bin /opt/bitnami/nodejs/bin/pm2 startup systemd -u bitnami --hp /home/bitnami
상단에 입력한 정보를 바탕으로 SFTP 설정 JSON이 자동으로 완성됩니다.
VS Code의 SFTP 확장 프로그램 설정 파일(sftp.json
)에 아래 내용을 붙여넣으세요.
[ { "name": "구분가능한이름넣기", "host": "서버아이피", "port": 22, "type": "sftp", "username": "bitnami", "password": "", "privateKey": "키의경로전체", "path": "/opt/bitnami/projects/chatbot", "autosave": true, "confirm": false, "ignore": [ "/**/node_modules" ] } ]
sudo nano /etc/ssh/sshd_config
파일 맨 아래에 다음 줄을 추가하세요:
PubkeyAcceptedKeyTypes=+ssh-rsa
추가 후 아래 키 조합으로 저장하고 종료하세요:
Ctrl + O
→ EnterCtrl + X
SSH 서비스를 재시작하여 변경 사항을 적용합니다:
sudo systemctl restart sshd
sudo /opt/bitnami/bncert-tool
아래 명령어를 순서대로 실행하여 인증서를 갱신하세요:
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="<이메일>" --domains="<도메인>" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start
sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt list
Found the following certs: Certificate Name: [자신의도메인이름] Domains: [자신의도메인이름] Expiry Date: 2023-03-30 23:00:13 +0000 UTC Certificate Path: /opt/bitnami/letsencrypt/certificates/[자신의도메인이름].crt
아래 단계를 통해 인증서 자동 갱신을 설정하세요:
폴더생성
sudo mkdir -p /opt/bitnami/letsencrypt/scripts
쉘스크립트 작성
sudo nano /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
아래 3줄을 입력
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="<이메일>" --domains="<도메인>" --path="/opt/bitnami/letsencrypt" renew --days 90
sudo /opt/bitnami/ctlscript.sh start
저장 ctrl+o / 나가기 ctrl + x
권한 추가
sudo chmod +x /opt/bitnami/letsencrypt/scripts/renew-certificate.sh
크론 있는지 확인
sudo crontab -l
크론 작성 시작
sudo crontab -e
0 0 1 * * /opt/bitnami/letsencrypt/scripts/renew-certificate.sh 2> /dev/null
sudo crontab -l