Ubuntu + Nginx + Ghostで楽しく書けるブログを構築する

このブログは、Ubuntu 14.04の上にnode.jsで動くCMS「Ghost」が動いています。ドメインを持たせるためのプロキシとしてnginxも使っていますが。

少しでもサーバーの知識があればインストールできると思いますので、自分用のメモも兼ねて記録。

インストールまで

まず、必要なのは

  • node.jsが動くサーバー
  • バックグラウンドで動かすためのForever
  • プロキシとして使うNginx

こんなもんです。

僕はUbuntuを使っているので、パスなんかは各自置き換える必要が出てくるかと思います。

基本的な動きはGhostの公式サイトにあるので、ここを見ながらやるのがいいのではないかと。

curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip  
unzip -uo ghost.zip -d ghost  

こんな感じでダウンロード→展開まで行います。

ここで展開したGhostディレクトリを適当な場所に移動しておくと良いかと思います。

さて、それでは一度起動して確認を行いましょう。

cd /path/to/ghost  
npm install --production  
npm start  

これで、127.0.0.1:2368にブログが現れます。

このままだとアドレスが面倒なので、先にNginxとGhost側の設定を行ってしまいましょう。

Nginxのconfigは、次のように書きます。

server {  
    listen 80;
    server_name example.com;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

これで、DNSがサーバーに向いているexample.comからブログへのアクセスが可能になります。

また、Ghost側にアドレスを教えてあげる必要があります。

Ghostをインストールしたディレクトリにあるconfig.js開き、「url:127.0.0.1:2368」となっている部分を「url:ドメイン」に変更します。

後は、nginxとGhostを再起動して、URLからアクセスしてみましょう。

ブログとして継続的に使うためには、Ghostのindex.jsを常に起動してあげる必要があります。
今回は、node.jsを継続的に実行する仕組みとして、foreverを選びました。

サーバーの再起動時に起動するため、/etc/rc.localに次のように記述します。

/usr/bin/node /usr/bin/forever start -p /var/run/forever --pidfile /var/run/node-app.pid -l /var/log/node-app.log -a -d /path/to/ghost/dev.shumbo/index.js

node.js、forever、ログファイルのパスを指定してあげています。環境に合ったパスに変更して使います。

あとは、サーバーを再起動するなり、上のコマンドを実行するなりすれば、いい感じに動くようになるのではないでしょうか。

さいごに

マークダウンで書くのは本当に楽ですし、何より書いていて楽しいです。いつでもサクッと書ける感じ。

WordPressのようにPHPやらデータベースやらをいじる必要もないので、初心者にとっても分かりやすいかもしれませんね。この記事は説明不足なので、適当にネットで調べてみてください。

これから記事を書くのが楽しみでしょうがない。