Ghostで作ったブログをherokuに公開する

  • 20
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

基本的な手順は以下の通りで良いのです。
http://www.howtoinstallghost.com/how-to-install-ghost-on-heroku/

ですがいくつかはまったポイントがありました。
まず、Procfileの作成の際。

web: node index.js --production

このように書くようにとありますが、これでherokuにpushすると、
heroku logs -t でログを見ると "Ghost is running in development..."と表示されてました。
試しにローカルのGhostのディレクトリで node index.js --production で起動してみると、やはりdevelopmentでした。

そこで次の通り修正しました。

web:  NODE_ENV=production node index.js

これでproductionで動かす事ができました。
ところがログを見ると今度は "Module pg not found" でまたしてもエラー。。
Ghostをnpm installするとnpmのライブラリは「node_modules」以下に格納されるのですが、その中に"pg"がないと。
pgはpostgresqlを利用するためのライブラリです。
ではインストール。

npm install pg --production

--productionオプションは、testファイルなどの開発用のコードをインストールしないためにつけておくと良いと思います。
Ghostのインストール時にもつけるオプションです。
すると今度は、"pg_config: command not found"で失敗。
CentOS環境なのでyumでインストールします。

yum install postgresql_devel

その後pgを再インストールして、herokuにpushすると、無事Ghostのトップ画面が表示されました。