tamuraです。

blogをGhostにしたので、インストール手順を簡単に紹介します。
 


Node.jsのインストール

NVMのインストール

例によって環境を汚したくないためと、apt-getでインストールするとnodejsというコマンドになりnpm等のコマンドがそのままだと動かなくなるため、NVMを先に入れます。

http://qiita.com/tamurashingo@github/items/6348863668e1e3fd70c9

この記事にあるように入れます。

Node.js のインストール

nvm install 0.10
nvm alias default 0.10

Ghost のインストール

http://docs.ghost.org/ja/installation/linux/

ここにあるように入れます。

wget https://ghost.org/zip/ghost-0.5.8.zip
mkdir ghost-0.5.8 && cd !$
unzip ../ghost-0.5.8.zip

npm install --production

リモートサーバでやっているのでまずはここまで。

Ghost の設定

アクセス元のサーバ

立上げ時は 127.0.0.1 からしか受け付けないようになっているので、すべてのアドレス(0.0.0.0)から受け付けるように変更します。

vi config.js

server というところがそうです。

        server: {
            host: '127.0.0.1',
            port: '2368'
        },

メールサーバ

当初は必要なかったのですが、ブログを書いてくれる人を招待する際にメールが必要なので、Mailgunを使うことにしました。

http://docs.ghost.org/ja/mail/#mailgunを使う場合-

ここにあるとおりにMailgunに登録して、ユーザ名とパスワードを発行してもらいます。非常にお手軽です。

管理者アカウントの作成

npm start

でサーバを立上げ、ブラウザでアクセスし、管理者アカウントを作成します。 本番用では

NODE_ENV=production forever start index.js

とforeverでデーモン化させました。

はてなブックマークのボタンをつける

CasperというテーマにはTwitter、Facebook、Google+へシェアするボタンが用意されています。
ここにはてなブックマークのボタンをつけました。

vi content/themes/casper/post.hbs
<a href=\"http://b.hatena.ne.jp/entry/{{url absolute=\"true\"}}\"
   class=\"hatena-bookmark-button\"
   data-hatena-bookmark-title=\"{{encode title}}\"
   data-hatena-bookmark-layout=\"standard-balloon\"
   data-hatena-bookmark-lang=\"ja\"
   title=\"このエントリーをはてなブックマークに追加\">
  <img src=\"https://b.st-hatena.com/images/entry-button/button-only@2x.png\"
       alt=\"このエントリーをはてなブックマークに追加\"
       width=\"20\" height=\"20\" style=\"border: none;\" />
</a>
<script type=\"text/javascript\" src=\"https://b.st-hatena.com/js/bookmark_button.js\" charset=\"utf-8\" async=\"async\"></script>

Google Analytics をつける

アクセス解析するために Google Analytics をつけます。

vi content/themes/casper/default.hbs
<!-- Google Analytics -->
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'XXXXXXXXXX', 'auto');
  ga('send', 'pageview');
</script>
<!-- End Google Analytics -->

ネットワーク設定

ApacheのReverseProxyを使って2368から80への転送を行います。

sudo a2enmod proxy
sudo a2enmod proxy_http
ProxyRequests Off
ProxyPass / http://127.0.0.1:2368/
ProxyPassReverse / http://127.0.0.1:2368/
ProxyPreserveHost On
<Proxy *>
    AllowOverride all
    Order deny,allow
    allow from 127.0.0.1
</Proxy>

あと先ほどすべてのアクセス元からリクエストを受け付けるようにしていたものを、127.0.0.1からしか受け付けないように、Ghostの設定を変更します(戻します)。

iptablesで2368へのアクセスを拒否。

sudo iptables -A INPUT -p tcp -s 127.0.0.1 --dport 2368 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2368 -j DROP

設定が完了したらApacheを再起動します。

sudo service apache2 restart

これで普通にhttp://157.7.203.87/にアクセスすると見れるようになりました。ポート2368にアクセスしても表示されません。

※今はアクセスしても表示されません