ghost 설치형 블로그 + 아마존 Lightsail

고스트 설치형 블로그 서버설정

**아마존 라이트세일(Lightsail)**의 OS전용 우분투(Ubuntu) 18.04 인스턴스 생성을 기준으로 정리합니다. 2019년 3월경에 했던 내용으로 최근에도 별 무리없이 설치가 가능했습니다.

사용자 생성

$ adduser <user>

사용자 이름은 ghost로 하지 않는것이 좋습니다. ghost-cli와 충돌이 있을 수 있다고 합니다. sudo adduser(root 권한)로 해야 할 수도 있습니다.

$ usermod -aG sudo <user>
$ su - <user>

생성한 사용자를 superuser 그룹에 포함시키고 관리자 권한을 준 후 새 사용자로 로그인 합니다.

패키지 업데이트

$ sudo apt-get update && sudo apt-get upgrade

Nginx를 설치하기 전 우분투 시스템을 업데이트 합니다.

Nginx(엔진엑스) 설치

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

Nginx를 설치하고 http와 https 연결을 위한 방화벽 포트를 열어줍니다. 아마존 라이트세일 인스턴스 관리탭의 네트워크 항목에서 포트 80, 443번을 열어줘야 합니다.

mysql 설치

우분투 18.04 버전 기준입니다.

$ sudo apt-get install mysql-server
$ sudo mysql
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'password';
mysql>quit
$ 

node.js 설치

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash
$ sudo apt-get install -y nodejs

지원버전을 체크해 리포지토리에 추가한 후 node.js를 설치합니다.

ghost-cli 설치

ghost 블로그 플랫폼의 명령줄 프로그램을 설치합니다.

$ sudo npm install ghost-cli@latest -g

설치가 되면 $ ghost help 로 도움말을 볼 수 있습니다.

ghost 설치

/root나 /home/user 디렉토리에 설치하면 설정이 손상됩니다. 권한을 제대로 설정한 사용자 디렉토리에 설치하도록 합니다.

$ sudo mkdir -p /var/www/ghost
$ sudo chown <user>:<user> /var/www/ghost
$ sudo chmod 775 /var/www/ghost

$ cd /var/www/ghost

$ ghost install

혹시 아마존 라이트세일의 최저플랜(512MB 메모리)이라면 메모리 부족 오류가 나올 수 있습니다. 이 경우엔 스왑메모리를 이용해 메모리를 확보한 후 설치합니다.

$ sudo swapon -s     # 스왑 파티션 확인
$ sudo free -m       # 메모리 용량 확인
$ sudo fallocate -l 1G /swap1g
$ sudo chmod 600 /swap1g
$ sudo mkswap /swap1g
$ sudo swapon /swap1g
$ sudo swapon -s
$ sudo free -m

재부팅시 적용되도록 설정

/etc/fstab에 다음 내용 추가
/swap1g     none    swap    sw  0   0

설치가 진행되면서 몇가지 질문에 답해야 합니다.

이제 https://yoursites.com/ghost 로 들어가 설정을 마무리 합니다.

참고