WordPressからGhostに移管してみた
長らくWordPressでこのブログを更新してきましたが、前々から気になっていたGhostに移管をしてみました。
その時に行ったことをメモしておきます。
目次
Ghostの準備
まずはGhostのインストールを行います。その間にh2oがうまく動かなくなってしまったので、現状の環境としてはCentOS7 + nginx + MySQL + Node.jsという感じです。
Node.jsをnvmでインストール
Node.jsはepelリポジトリからyum
でインストールをすることが可能ですが、今回はnvm経由でインストールします。
# nvmをインストール
$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh
# ログイン時に有効化されるようにしておく
# 下記を追加
$ vi ~/.bash_profile
if [[ -s ~/.nvm/nvm.sh ]];
then source ~/.nvm/nvm.sh
fi
# インストールできるバージョンを確認
$ nvm ls-remote
# インストール
$ nvm install v4.4.2
# デフォルトに設定
$ nvm alias default v5.10.1
Ghostをインストール
次にGhostをインストールします。
# ソースコードを取得
$ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
$ unzip -uo ghost.zip -d ghost
$ cd ghost
# 必要ライブラリをインストール
$ npm install sqlite3 --build-from-source
$ npm install --production
# とりあえず動かしてみる
$ npm start
config.js
を書き換えることで、実行するIPアドレスやポート、URLを変更することが出来ます。
Node.jsの実行をデーモン化する
npm start
でも実行はできますが、デーモン化されないので、forever
をインストールしました。
$ npm install forever -g
これで、実行する際は、
$ NODE_ENV=production forever start index.js
停止する際は、
$ forever stop index.js
を叩けばOKです。
nginxからGhostを実行する
ドメインから実行できるようにnginxからGhostを実行させます。ココに関しては特に難しくもなく、公式マニュアルの方法に則って設定しています。
若干違う点としては、SSLで運用していますので、一部記述が増えています。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/ssl.pem;
ssl_certificate_key /path/to/ssl.key;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
インストールや、初期設定などについては割愛します。
記事データの移管
次に、これまで書いてきた記事データの移管を行います。WordPressにGhost向けにjson形式変換してエクスポートするプラグインが用意されていますので、そちらをインストールしてデータを取得します。
データがダウンロード出来たら、Ghostの管理画面にログインし、Labs
メニューからアップロードしてインポートします。
基本的なテキストデータはコチラで引き継ぐことが出来ました。
手直しが必要なモノ
上記プラグインで全て引き継ぐコトが出来る訳ではありません。
自分の場合は下記の作業を手作業で行いました。
- 画像の移管
- 参照先のURLが変わらないので、WordPressのサーバが残るのであれば、そのままでもOK
- WordPressのショートコード
[*][/*]
- 変換されないので、手で直す必要があります
- 微調整
- たまに綺麗にMarkdownになっていないコトがあるので、微調整
この作業が一番手間かもしれません…。
雑感
前々から気になっていたのですが、やっと試すことが出来ました。
以前も一度インストールしてみようかと思っていたのですが、npm install
がどうにもうまく実行できずに諦めてしまっていました。
今回はちゃんと動いてくれたので良かったです。
Markdownも最近PCでメモを取るときは利用することが多くなったため、ブログ記事もMarkdownで記入できると楽だなぁと今回思いました。
WordPressの時もJetpackプラグインでMarkdown対応出来たと思いますが、他の記事に影響がありそうで怖くて使っていませんでした…。使い勝手的にはどうなのでしょうね?
しかし、まだまだv1.0にもなっていないので、色々起きるかもしれませんが、ちょこちょこ試してみようかと思います。テーマも取り急ぎ不要なモノを削っただけなので、そちらもいじってみたいですね。