집에서 블로그를 운영하자 - ghost

집에서 블로그를 운영하자 - ghost

나란 사람 nginx 한번도 안써본 사람

asus 공유기에 물려서 컨플루언스만 써본 사람

개인 서버에 고스트를 설치하고 배포까지의 삽질기

  • 환경

ghost : 공짜
ubuntu 22.04 : 공짜
n6000 m6 mini pc : 26만원
유료도메인 구입 : 1년 15,000원

  • 참고 가이드
How to install & setup Ghost on Ubuntu 16.04, 18.04 and 20.04
A full production install guide for how to install the Ghost professional publishing platform on a production server running Ubuntu 16.04, 18.04 or 20.04.

adduser 고스트유저명
usermod -aG sudo 고스트유저명
su - 고스트유저명
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install nginx -y
sudo ufw allow 'Nginx Full'
sudo apt-get install mysql-server -y
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
quit
#고스트 설치 계정으로 안되어 있을 경우 고스트 유저로 전환
su - 고스트유저명
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
sudo apt-get install -y nodejs
sudo npm install ghost-cli@latest -g

sudo mkdir -p /var/www/사이트명
sudo chown 고스트유저명:고스트유저명 /var/www/사이트명
sudo chmod 775 /var/www/사이트명
cd /var/www/사이트명
ghost install

위까진 그냥 적혀진 것 복붙해서 실행하면 순조롭게 진행된다.

고스트 설치중 물어보는 것들이 많다. 이제부터가 중요한데

Blog URL

현재 도메인을 가진 서버라면 해당 도메인을 적고 엔터
aws 에 abc.com 이라는 도메인으로 연결된 서버가 있다면 http://abc.com 을 적으면 된다. 도메인이 없이 내부망, 즉 공유기같은 것을 통해 ip로밖에 접근이 안될 경우는 ip 적어주면 된다. ssl을 구성하고 싶다면 https 프로토콜과 함께 인증서 환경이 필요하다

글쓴이는 이 시점에 devbit.co.kr 도메인을 하나 샀고 공유기를 사용중이다.( 도메인 서비스 페이지에서 블로그용으로 blog.devbit.co.kr 을 미리 공유기 공인 ip로 연결시켜둔다 )

공유기에서는 50080 포트를 고스트 서버에 포트포워딩 해 둔 상태다.

MySQL hostname

우리는 고스트가 있는 서버에 mysql을 설치했으므로 localhost 로 적거나 그냥 엔터 바로 치면 된다. 외부에 있는 mysql 일 경우 해당 주소를 적어주면 된다. 물론 mysql 서버의 포트는 개방시켜둬야 한다.

MySQL username / password

root 그리고 mysql 에서 root 용 비번을 적고 엔터

Ghost database name

db명인데 그냥 엔터치면 기본값으로 들어간다.

Set up a ghost MySQL user?

mysql 에서 사용할 고스트 유저명인데 그냥 엔터치자

Set up NGINX?

우린 위에서 이미 설치했으므로 skip 된다

Set up SSL?

처음에 https 프로토콜이 명시된 url 로 기입했다면 설치, http 로 했다면 skip 된다

Set up systemd?

y 하면 됨

Start Ghost?

y

이제 웹브라우저에서 해당 url( 글 내용상 blog.devbit.co.kr ) 로 들어가 보자.

ㅎㅎ 방가염 이라는 친절한 nginx 의 기본 페이지가 맞이해 준다.

당황하지말자. 정상이다.

그럼 고스트는 어케 접속해야 하나?

이제 nginx 의 설정을 손대주자.

제일 많이 시간을 뺏긴 부분이다. nginx 를 처음 다룬 것도 있고 머리도 나빴다.

cd /etc/nginx/sites-available

이 위치는 nginx 에서 라우팅할 정보들이 모인 장소이다.( 중요한 곳이다 )

  • nginx 를 잘 모르는 사람이라면 집에서 쓰는 인터넷 공유기와 같은 개념으로 생각하면 쉽다. 외부에서 들어오는 주소에 따라 nginx 에서 알맞은 곳으로 안내해 주는 역할이다.

sudo nano blog

저 위치에 blog 라는 파일을 하나 생성한다.
( sudo vi blog 도 상관없으니 입맛대로 사용 )

server {
        listen 80;
        server_name blog.devbit.co.kr;
        location / {
                proxy_pass http://127.0.0.1:2368;
        }
}

blog 파일에 위 내용을 복붙한다.
( 2368 포트는 고스트 서버가 구동되는 기본 포트이다. 만약 ghost config --port 명령어로 포트가 변경된 경우면 그 포트를 적어주면 된다 )

하나의 서버에 여러개 서버를 운영하거나 외부에서 들어오는 url을 한군데 서버로 통하게 할 경우 위 내용을 복붙하면서 변경하면 되는데 이건 초보가 할 짓이 못되므로 일단 pass

ctrl + x 누르고 y 누르고 엔터하면 저장된다.
( vi 일 경우엔 esc, wq! 하고 엔터 )

sudo service nginx restart

nginx 를 재시작한다. 이 과정에서 에러가 나면 아까 만진 blog 파일에 오타등 잘못된 정보가 있을 가능성이 크다.

다시 웹브라우저에서 blog 파일에 넣은 도메인 주소로 접근해 보자.
( 이 가이드상에선 blog.devbit.co.kr )

오졋다리 지렷다리

Subscribe to X세대 신입사원

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe
774-86-01972 cinnabar.3d@gmail.com