ghost のアップグレード(0.6.4 to 0.7.0)
スポンサーリンク
VPSにセットアップしたghostをアップグレードしたのでメモ。基本的に本家のドキュメント通り。
ghostはblogに特化したCMS。エンジン部分のNodejsを採用したことで話題になったという。 glibcの脆弱性の通称GHOSTではなくghost。
下記のサイトを参考にしてセットアップしていることが前提です。
How To Create a Blog with Ghost and Nginx on Ubuntu 14.04 | DigitalOcean
あくまでもセットアップではなくバージョンアップのメモ。
環境はさくらのVPSに構築したUbuntu 15.04 です。
準備
データのバックアップ
まず、管理画面からblog記事をバックアップ
- <server-name>/ghost からログイン。
- SETTINGSタブをクリックする。
- 左側のメニューからLabsをクリックする
- EXPORTという青いボタンをクリック
すると、ドメイン名.ghost.日付.jsonという名前でエクスポート可能される。。
次に、サーバーにログインし、既存のghostフォルダをまるごとバックアップ。
$ sudo cp -r /var/www/ghost /var/www/old_ghost
最新バージョンの取得
$ curl -LOk https://ghost.org/zip/ghost-0.7.0.zip
or
$ curl -LOk https://ghost.org/zip/ghost-latest.zip
適当な場所へ展開。
$ unzip ghost-0.7.0.zip -d ghost-0.7.0
バージョンアップ
古いファイル一式を削除
まずcoreディレクトリを削除する。ls
で削除対象を確認した上でrm
する。
$ sudo ls /var/www/ghost/core
潔く容赦なく。
$ sudo rm -rf /var/www/ghost/core
/var/www/ghost直下の index.js ならびに、.md、.jsonファイル を削除。
対象ファイルの確認。
$ sudo ls /var/www/ghost/index.js $ sudo ls /var/www/ghost/{*.json,*.md}
削除実行。
$ sudo rm -i /var/www/ghost/index.js $ sudo rm -i /var/www/ghost/{*.json,*.md}
注意:config.jsは削除しないこと
coreディレクトリと各種ファイルをコピー
$ cd ghost-0.7.0 $ sudo cp -r core /var/www/ghost/ $ sudo cp -r index.js package.json npm-shrinkwrap.json /var/www/ghost/
念のため更新日を確認しておく。上記でコピーしたファイルの日付が新しくなってればOK。
$ sudo ls -lh /var/www/ghost/
テーマの更新(Casperを利用している場合)
※別テーマを導入済みならそちらの配布サイトを確認する。
$ sudo cp -r content/themes/casper /var/www/ghost/content/themes/
パーミッションの変更
ファイルの所有者ならびにグループを変更する
$ sudo chown -R ghost:ghost /var/www/ghost $ sudo ls -lh /var/www/ghost
依存しているパッケージの更新
なんらかの方法でghostというユーザーをログインできない設定にしている場合は一旦解除(環境依存)
$ sudo su - ghost $ cd /var/www/ghost $ npm install --production
ghost を再起動する
systemdのサービスとして設定していることが前提。
$ sudo systemctl restart ghost.service
念のためjounalctl
でログを確かめておく。
ちなみにsystemdのサービス起動用の設定ファイルは下記のものをほぼそのまま。
Ghost-Config/ghost.service at master · TryGhost/Ghost-Config · GitHub
表示を確認
サイトにアクセスして問題がないことを確認。 新しくなった管理画面にログインすると、更新内容の紹介ページ(ドラフト)が作成されています。
主な新機能は、管理画面のUI刷新、特に過去に書いたブログエントリの検索機能、テーマ作成用のAPIの機能強化。
詳細は本家の方へ。
他の環境については本家のドキュメント参照。