人柱になりました。WordPressからGhostへのお引越し。

最近は作業に追われ、ブログの更新も絶え絶えな日々を送っていました。

このままでは、いかん。

…ということで、今まではWordPressでサイトを構築・更新していたのですが、

WordPressから今話題?の Ghost という javascript ベースのCMSに移行してみました。

我ながら突拍子もない…..ですが。

普段の業務では,nodeJSを使用した仕事なんてそうそうないので、ブログを実験台代わりに。

目次

Ghost って?

今回移行したGhostは、以前からkickstarterで注目を集めていました。
Node.js + sqllite3 + Handlebars.js で構築できるブログソフトウェアです。

http://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform

Kickstarterで1900万円以上の資金を調達したプロジェクトが今回見事にローンチされました。

簡単に長所を上げると、

  • オープンソースかつ非営利のプロジェクトである。
  • 複数人での更新がしやすい。
  • スマートフォン・タブレットへの最適化。管理画面も含め。
  • マークダウン記法でのブログ更新を軸に構築。
  • シンプルに記事を更新。
  • 結構WordPressに似ている箇所が幾つか。構築しやすい?

…..こんなところでしょうか。

もちろん短所も有ります。

  • まだ、発展途上である。 (現在 0.3 ver)
  • nodeJS を使用するため、サーバーを選ぶ。
  • カスタマイズをするなら、根本的なコードから構築しなければならない。
  • ドキュメントが少ない。

というか、はっきり言ってWordPressからGhostへ移行するメリットは、現時点ではありません。

今回の移行は完全に趣味です。

お、なんか試してみたいなという方のご参考になればと思います。

Ghostへの引越し準備

まずはGhostへの引越し準備をしましょう。

今回は、WordPressからの引越しなんですが,
探したらWordPressのプラグインが用意してありました。

http://wordpress.org/plugins/ghost/

プラグインをインストールすると、メニューの「ツール」に「Export to Ghost」が表示されます。

上記画面下部の「Download Ghost File 」をクリックし、jsonファイルをダウンロード。
この中にこれまでの記事情報が保存されていますが、注意点が幾つか。

  • エクスポートされるのは「投稿記事」のみ。固定ページはエクスポートされません。
    (そもそも、Ghostにまだ固定ページ・投稿ページといった概念がない。)
  • 内容によってはインポート時にエラーがでることも。
  • もちろん、記事内でショートコード等使用している場合にはそのまま出力されます。
  • 画像データはURLとして出力されるので、残しておく必要・または新しく置くディレクトリ階層に置換する必要があります。( URLに含まれる文字・ /[スラッシュ] は[バックスラッシュ]でエスケープしてあるので気をつけて下さい。 )

まぁ、完全にコンテンツを移行できるもんではありません。

サーバー環境を整える。

今回使用したサーバー概要です。

  • amazon web service s2 / t1.micro
  • OS : centos 6.4
  • 基本的なパッケージは導入ずみ。

Ghostはインストール手順がOS環境によって変わります。

今回はcentos ですので,

http://www.howtoinstallghost.com/how-to-install-ghost-on-centos-server-6-4/

を参考にしました。

( その他のサーバーに関しても http://www.howtoinstallghost.com/ に掲載されてますのでご参考に。)

Node.jsをインストール

$ mkdir ~/tmp
$ cd ~/tmp 
$ wget -N http://nodejs.org/dist/node-latest.tar.gz
$ tar xzvf node-latest.tar.gz
$ cd node-latest
$ make
$ sudo make install 

上記でインストール完了。
最後に、

$ node -v
$ npm -v 

を実行し、バージョンが表示されたらNode.jsのインストール完了です。

Ghostのインストール

ついに本題であるGhostのインストールです。

https://ghost.org/signup

から登録し、ダウンロードすることもできますが、githubのレポジトリからも直接ダウンロードすることもできます。

https://github.com/TryGhost/Ghost

が無難に公式サイトからダウンロードするのが無難かと。

まずは、サーバーの公開ディレクトリに最新のghostをダウンロードしてきます。

$  curl -O  https://ghost.org/zip/ghost-0.3.3.zip

次に展開します。

$ unzip ghost-0.3.3.zip

config.sample.jsというファイルをconfig.jsという名前でコピー。

$ cp config.sample.js config.js

次にconfig.jsを編集していきます。

// # Ghost Configuration
// Setup your Ghost install for various environments

var path = require('path'),
    config;

config = {
    // ### Development **(default)**
    development: {
        // The url to use when providing links to the site, E.g. in RSS and email.
        url: 'http://web-layman.com', //公開するサイトのURLへ変更

        // Example mail config
        // Visit http://docs.ghost.org/mail for instructions
        // ```
        //  mail: {
        //      transport: 'SMTP',
        //      options: {
        //          service: 'Mailgun',
        //          auth: {
        //              user: '', // mailgun username
        //              pass: ''  // mailgun password
        //          }
        //      }
        //  },
        // ```

        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost-dev.db')
            },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '0.0.0.0',  //127.0.0.0から 0.0.0.0へ変更
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '80'  //2368から80へ変更
        }
    },

       // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: 'http://web-layman.com',  //公開するサイトのURLへ変更
        mail: {},
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '0.0.0.0', //127.0.0.0から 0.0.0.0へ変更
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '80' //2368から80へ変更
        }
    },

    // **Developers only need to edit below here**

    // ### Testing
    // Used when developing Ghost to run tests and check the health of Ghost
    // Uses a different port number
    testing: {
        url: 'http://0.0.0.0:2369', // 127.0.0.0:2369から0.0.0.0:2369へ変更
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost-test.db')
            }
        },
        server: {
            host: '0.0.0.0', //127.0.0.0から0.0.0.0へ変更
            port: '2369'
        }
    },

    // ### Travis
    // Automated testing run through Github
    travis: {
        url: 'http://0.0.0.0:80', // 127.0.0.0:2368から0.0.0.0:80へ変更
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost-travis.db')
            }
        },
        server: {
            host: '0.0.0.0', //127.0.0.0から0.0.0.0へ変更
            port: '80' // 2368から80へ変更
        }
    }
};

// Export config
module.exports = config;

config.js を編集完了後、以下を実行。

$ npm install --production

これでGhostはインストール完了です。
次に、

$ npm start

と恐る恐る入力してください。
Ghostが無事起動した方はおめでとうございます!

失敗した方はご愁傷様です。

結構サーバーの環境によってはエラーをはきます。 ( nodejsやnpm関係 )

もしできない方は、

http://docs.ghost.org/

や、

https://ghost.org/forum/

にて探して下さい。( すみません。 )

データをインポート・運用

無事にGhostがインストールされたら管理画面にアクセスしてみましょう!

http://hogehoge.com/ghost

(hogehoge.comはご自身のURL)

アカウント名・パスワードを入力。

( ここのアカウントがhttp://ghost.org で登録したアカウントと連動しているのかは未検証です。…..っていうか連動してなきゃおかしいな。)

WordPressの記事データをインポートしたい場合は

http://hogehoge.com/ghost/debug/

にアクセスするとExport・inportができる画面が表示されます。

実際の使用感

この記事が初めての投稿記事なんですが、
正直後悔している部分も……(泣)

  • タグ機能は用意されているが、アーカイブなどの実装はまだ。
  • 投稿時のjsがやたら重い。スマートフォンだと動かない。( 本末転倒な展開 )
  • 拡張性がまだ低い。
  • etc….

ちなみにスマホだとこんな感じの管理画面。

まぁ、まだ出たばかりのCMSですのでこんなもんかなと。

集中して記事を書くには今のところ問題無いかも!( 震え声

普通の個人的なブログをやる分には問題は無いかな。
けど、最終的にはWordPressに近づくんでしょうかね。

ローカル環境でのインストールは比較的簡単だと思うので、
是非試してみて下さいー!

参考リンク

1shiharaT
1shiharaT
本名 : 石原隆志

2013年からWeb業界に身を置き、GrowGroup株式会社でWordPressやEC-CUBEなどのCMSを中心にWeb制作をやってます。
本名 : 石原隆志 2013年からWeb業界に身を置き、GrowGroup株式会社でWordPressやEC-CUBEなどのCMSを中心にWeb制作をやってます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です