집에서 블로그를 운영하자 - ghost
나란 사람 nginx 한번도 안써본 사람
asus 공유기에 물려서 컨플루언스만 써본 사람
개인 서버에 고스트를 설치하고 배포까지의 삽질기
- 환경
ghost : 공짜
ubuntu 22.04 : 공짜
n6000 m6 mini pc : 26만원
유료도메인 구입 : 1년 15,000원
- 참고 가이드
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 )
오졋다리 지렷다리