고스트 블로그 만들기

chocosobo

목차

AWS Lightsail 인스턴트 생성

Linux / Ubuntu 선택
3.5$ 버전 혹은 5$ 버전 선택 (5$버전 권장)
고정 IP 연결
HTTPS 포트 개방

시스템 준비

$ sudo apt update && sudo apt upgrade -y

스왑 메모리 추가 (3.5$ 버전일 경우)

$ sudo fallocate -l 2G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

잘 적용되어있는지 확인하는 법

$ sudo free -m

swap total에 2기가 용량이 뜨면 잘 적용된 것

고스트 설치

고스트용 사용자 추가

$ sudo adduser 'USER'
$ sudo usermod -aG sudo 'USER'
$ sudo su 'USER'

'USER'에 만들 유저 명 '' 제거

NginX 설치

$ sudo apt-get install nginx
$ sudo ufw allow 'Nginx Full'

MySQL 설치

$ sudo apt-get install mysql-server
$ sudo mysql

alter USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

Quit

'PASSWORD'에 비밀번호 지정 ''유지

Node.js 설치

$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash
$ sudo apt-get install -y nodejs
Supported node versions for self-hosted installs of Ghost - FAQ
Self-hosted installs of Ghost are recommended to use the supported node versions to ensure you don’t run into any common errors. Find out more information.

위 링크에서 현재 권장하는 노드 버전을 확인해 설치하도록
작성 당시 (2020/07/28) 12.x가 최신

Ghost CLI 설치

$ sudo npm install ghost-cli@latest -g

고스트 설치 관리 툴

설치 폴더 설정

#도메인 그대로 사용을 원할경우 www까지만
$ sudo mkdir -p /var/www/ghost

# USER에 위에서 만든 유저이름 /var/www/ghost
$ sudo chown 'USER':'USER' /var/www/ghost
$ sudo chmod 775 /var/www/ghost
$ cd /var/www/ghost

설치

$ ghost install

설치 중 선택사항 (권장 내용)

  1. Blog URL 사용할 주소 입력
  2. MySQL hostname 별도 입력없이 엔터
  3. MySQL username 엔터
  4. MySQL password MySQL 설치중 만든 비밀번호
  5. Ghost database name 엔터
  6. Set up ghost MySQL user? 권장 Yes
  7. Set up NGINX? 권장 Yes
  8. Set up SSL? 권장 Yes지만 별도 설정을 위해 No
  9. Set up systemd? 권장 Yes
  10. Start ghost? Yes

SSL 인증

certbot 설치

$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx

certbot 설정

$ sudo certbot --nginx -d "블로그에 쓸 URL"
--중략--
Enter email address --중략-- : "이메일 입력"

이후 약관 동의 2개, http를 https로 리다이렉트 할지 선택 (2 권장)

자동 갱신 설정

$ sudo crontab -e

가장 무난한 nano 편집기를 활용해 제일 아랫줄에 다음을 추가

0 0 1 * * certbot renew

S3 연결

lightsail로는 용량이 모자랄 경우나 사진이 많을 경우 설정

  1. S3 인스턴트 생성
  2. 정적 호스팅 활성화
  3. IAM 사용자 추가
  4. KeyID와 Secret키 설정

$ cd /var/www/ghost
sudo nano config.production.json

젤 아래 쉼표 추가 후 아래 항목 추가

  "storage": {
    "active": "s3",
    "s3": {
      "bucket": "버킷이름",
      "region": "ap-northeast-2",
      "accessKeyId": "아이디키",
      "secretAccessKey": "시크릿키",
      "endpoint": "https://s3.ap-northeast-2.amazonaws.com/"
    }
  }

고스트 재시작

$ cd /var/www/ghost
ghost restart