カテゴリー: MovableType関連

このブログをMT4からMT5に移行したので、作業メモを残しておく

このブログは MovableType4 で運用していたのですが、昨日これを MovableType5 に移行したので、そのときの作業メモを残します。JVC公式サイトを MT5 でリニューアルするにあたって、そのための技術テストを行うための移行となります。

ちなみに、単にシステムごと MT5 にアップグレードしたのではなく(そういう記事は検索するとたくさん出てきますね)、ブログ単体で MT4 から MT5 に移しました。システムごとアップグレードしたほうが楽なのでしょうが、しばらくは MT4, MT5 両者の並行運用が必要なので、ブログ単体だけの移行が必要になった次第です。

また、いわゆるMTの標準機能にある「バックアップ/復元」を使おうかとも考えましたが、これは移行元/先のMTのバージョンが同じであることが推奨されているので、今回は利用しませんでした。

以下、実際に行なった移行作業になります(多少順序は前後してたかも知れません)。

  1. MT5 で移行先ブログを作成する(URL指定はMT4の現行ブログとは別にする)
  2. 現行ブログで「記事のエクスポート」を行う
    1. これにはブログ記事、コメント、トラックバックが含まれる
  3. エクスポートしたデータを、移行先ブログで「記事のインポート」を使ってインポートする
  4. 移行先ブログにつくられるデフォルトのテンプレートをすべて削除する
  5. 移行先ブログで、現行ブログと同じようにテンプレートを設定する
    1. 現行ブログでは、もともと各テンプレートは「ファイルにリンク」させていたので、これらのファイルを一旦ダウンロードする
    2. 移行先ブログのフォルダ内にダウンロードしたファイルをアップロードする
    3. 新規テンプレートを作成する際に、アップロードしたファイルをリンク先に指定していく
    4. この時点で、移行先ブログ側に足りないプラグインがあることがわかったりするので、必要に応じて追加・設定していく
    5. この時点で、テンプレート内で blog_id などを直接した記述は修正しておく(MT4上とMT5上とでblog_idはおそらく異なってくるので)
  6. 移行先ブログで、現行ブログと同じようにカテゴリとフォルダを設定する
  7. 現行サイトから画像などのデータを一旦ダウンロードし、移行先ブログのフォルダ内にアップロードする
    1. 普通にアイテムとして登録されている画像を格納しているフォルダだけでなく、WindowsLiveWriter を使って画像をアップロードすると作られるフォルダなども忘れずに移行する
  8. 特殊な設定ファイルを一旦ダウンロードし、移行先ブログのフォルダ内にアップロードする
    1. 例) .htaccessやga.php(GoogleAnalytics) など
  9. ブログ全体を再構築して、ただしく表示されることを確認する
  10. 現行ブログを、フォルダ・URL指定を変更して再構築しておく
    1. この時点で現行ブログ自体のデータやMT4上設定をすべて削除してもいいのだろうが、念のために残しておく
  11. 現行ブログの(それまでの)URLに対応するフォルダをフォルダごと削除する
  12. 移行先ブログのURL指定をいま削除したフォルダの名前(=これまでのURL)に変更して再構築する

以上になります。

この方法の欠点は、ウェブページが移行できてないこと(今回はもともとなかったので問題なし)、アイテムとしての情報が残らないことくらいでしょうか。

また、MT5 の管理画面には「検索/置換」機能があり、移行前後でテンプレートやブログ記事内の特定の記述を一気に変更=置換したい時などに非常に便利だと思われます。

ご参考までに。

広告

MTをcronで定期的にバックアップ

つづけてメモエントリー。

再構築に続き、今度は cron を使って定期的にバックアップしてみました。

利用したスクリプトは、以下のものです。

ただし、またしても利用しているホスティングサービスの仕様で、「スクリプト内で外部ファイルを参照する際にはフルパスを指定しなければならない」というものがあり、スクリプト内の以下の部分を修正しました。

#use lib qw( lib extlib );
use lib qw( (MTディレクトリのフルパス)/lib (MTディレクトリのフルパス)/extlib );

これをまた呼び出すシェルスクリプトを組んでそれを cron で指定することにより、とりあえず夜中の1時に自動で起動するようにしました。これで、毎日自動でバックアップが取れるようになりました。

本当は、バックアップを取るごとにフォルダを変えて、毎日の分をそれぞれ残しておくようにできればいいんですけれどね。今は、毎回上書き保存しているわけですが、それだと、何かおかしくなってしまったときにそれに気づく前にバックアップが走ってしまうと、おかしくなった状態でバックアップが上書きされてしまうので。

これも後の宿題、としておきましょう。

MTをcronで定期的に再構築

今回はメモエントリーです。

MovableType では、テンプレートなどから HTML ファイルを生成することを再構築と呼びます。当然、記事を投稿した際などに再構築を行う(ことで新しい内容のページができあがる)わけですが、最近記事の投稿に使っている Live Writer を利用した際に、複数ブログを連携させるMultiBlog というものが想定したように動いてくれない(あるブログに記事を投稿した際に、他のブログを再構築すること)、という問題に遭遇しました。

原因は、Live Writer のように外部ツールからの投稿の際に利用される仕組みである XML-RPC による投稿の際には、MultiBlog の(再構築)トリガーが引かれない、ということで、どうやらこれは仕様のようです。下記ブログを参照のこと。

で、いろいろ調べたところ、mt-rebuild というスクリプトを使って、定期的に(とりあえず一日一回)再構築させることで対応することにしました。

mt-rebuild を使う

mt-rebuild は以下のページからダウンロードできます。

かなり以前に作られたもので、現在の MT4.x では動かない、と書かれているブログも見受けられます。

しかし、こちらは MT4.x の機能であるカスタムフィールドの部分が引っかかる、というもので、現在こちらで対象とするブログではカスタムフィールドは利用していないので、とりあえず参考情報ということで。

それと、とりあえずスクリプト内の以下の部分を変更しておきました。

#my $mt = MT->new( Config    => $MT_DIR . 'mt.cfg',
#                  Directory => $MT_DIR )
#  || die MT->errstr;
my $mt = MT->new( Config    => $MT_DIR . 'mt-config.cgi',
Directory => $MT_DIR )
|| die MT->errstr;

MTの設定ファイルのファイル名が以前( MT.3x 以前かな?)と違っているためですね。

このスクリプトを実行することで、引数で指定したブログを再構築できるわけです。

cron を使う

また、通常こうしたスクリプトを定期的に実行させるには、cron という仕組みを使うのが常套手段です。

しかし、利用しているホスティングサービスの現在のサービス契約では、telnet が利用できずに、cronはサービス専用の設定画面からスクリプトを選択させることしかできないのです(=スクリプトに対して引数を指定できない)。

というわけで、mt-rebuild スクリプトを呼び出すためのシェルスクリプト(この中で引数を mt-rebuild に渡す)を書いてアップロード、それを cron で指定して呼び出す(そのシェルスクリプトを cron で実行する)、という形になりました。

そしてここで、テンプレート名に日本語を指定したら以下のエラーメッセージが帰ってきたために、とりあえずテンプレート名を半角英数文字にすることで対応しました。

  • Rebuild Error: Can’t load template (日本語のテンプレート名) in blog_id of 2 at (mt-rebuildのインストールフォルダ)/mt-rebuild.pl line 148.

おそらく、文字コードが合っていないためでしょう。シェルスクリプトから日本語名のテンプレートを指定して実行できた、と書かれているブログもあることですし。これに関しては、後日また試してみたいと思います。

ただ、どうもブログ全体を再構築する指定はうまくいかず(あまり関係ないと見られるエラーメッセージがでる)、特定のテンプレートを再構築させる指定はできましたので、当面の目標はクリアしたこともあり今回はこれでよしとします。

…と、ここまで調べて実装するのに数時間もかかってしまいました。以下の2点を宿題として記録しておきます。

  1. カスタムフィールドを利用した際にきちんと再構築されるか
  2. テンプレート指定でなくブログ全体指定できちんと再構築されるか

MovableType 4.1 は、NPO/NGOの救世主か?

NPO/NGO に関わりはじめて5年が過ぎました。

という名称からもわかるように、先頭のNは、「○○ではないもの」という意味のNonのことです。

  • 私たちは「○○ではないもの」である → では何者なのか?

個人的には、NPO/NGO にとって、まずは「自分たちが何者なのか」を他人に伝えるための情報発信や広報活動が、本来の事業と同じくらいに重要なのではないか、と常々思っています。「○○でない」とくくられているのであれば、「自分たちが何者なのか」は、常に自分自身で発信し続けなければならないのです。

「NPO/NGOだから良いことをやっているのだろう」と無条件に思われる時代は、いつまでも続かないと思います(もう終わっているかな?)。

このグラフの説明は続きで...

数多くある NPO/NGO のなかで、自団体をどう伝えるか。もちろん様々な要素がからんでくることではありますが、やはりウェブサイトがあるかどうか・充実しているか、という点は大きなポイントだと思います。(左のグラフに関しては後ほど)

そこで今回は、ブログ管理ソフトのひとつである MovableType 4.1 についてです。「救世主」はさすがに大げさですが、自団体のウェブサイトをもっと良くしたいと考えている方は、ちょっとおつきあいください。

“MovableType 4.1 は、NPO/NGOの救世主か?” の続きを読む