Linux系サーバからWindowsへMoavableTypeを移動する

  1. 前提
    1. Windowsの状態
    2. CentOSにインストールされている環境
    3. MoavbleTypeの利用状況
  2. データベースをバックアップする
    1. character-setの指定
  3. バックアップファイル内でのパスの変更
    1. 公開パスの変更
    2. 公開URLの変更
    3. アセットファイルのパスの変更
  4. dumpファイルを復活

1.前提

MovableTypeで作業をするときには作業用のWindowsにXAMPPでApacheやMySQL、ActivePerlでperlの環境でいじって、最終的に公開用のWebサーバのデータベースにそっくりそのまま移すなんてことをしている。 そこで困るのが、アセットや公開設定のパスなんかが違っていたりして、修正するのが管理画面からではやりづらいのでいじってみる

具体的には

  • ディレクトリ構造が公開用環境と違う
  • パスの区切り文字が違う
  • アセットがMovableTypeから認識されないことがある

これを解消したい。

1.1.Windowsの状態

  • WindowsXP(オワコン)
  • XAMPP
    • Apache
    • PHP
    • MySQL -ActivePerl
    • その他もろもろのperl module

こういう状態でhostsファイルを直接いじってローカル環境にdomainでアクセス出来るようにしている。

1.2.公開サーバ環境

  • CentOS
    • いわゆるLAMPっぽい状態

1.3.MoavbleTypeの利用状況

  • MTOS 5.1.x
  • アセットで画像なりがエントリにヒモ付いた状態でアップロード
  • 出力文字コードはUTF8
  • データベースはMySQL

2.データベースをバックアップする

まぁ、フツーにdumpする。

2.1.character-setの指定

mysqldumpで--default-character-set=utf8とか指定しておかないと後で泣ける

# mysqldump --default-character-set=utf8 -u USERNAME -p DATABASENAME > DATABASENAME.dump

3.バックアップファイル内でのパスの変更

データベースをインポートしてから変更使用とするとすごくめんどくさいのでバックアップファイルで直接やっちゃう UTF8の文字コードが扱えて、正規表現による置き換えができれば何でもいいんじゃないかと。

特にアセットのパスはちゃんとそのパスにファイルが存在しないと、ファイルがMovableTypeから管理できなくなっちゃうのでパスの記述方法とか間違えないように。 Windowsの場合、パスの区切り文字が \ バックスラッシュなのでdumpファイル内では \ のようにエスケープしてあげる必要がある。

3.1.公開パスの変更

/home/example.com/public_html

みたいなやつを、xamppで設定済みのパスに変更してやる

C:\\xampp\\example.com\\public_html

3.2.公開URLの変更

www.example.com

を、

local.example.com

3.3.アセットファイルのパスの変更

'%r/files/blog/example.jpg'

みたいな文字列を探してきて

'%r\\files\\blog\\example.jpg'

なんかに置き換えてあげる

4.dumpファイルを復活

コマンドプロンプトで

C:\>mysql --default-character-set=utf8 -u USERNAME DATABASENAME < local.DATABASENAME.dump

ここでしっかり、--default-character-set=utf8を指定してあげないとエラー吐かれてインポートできない。

Movable Type 5.1 プロの現場の仕事術
荒木 勇次郎 蒲生 トシヒロ 藤本 壱 西畑 一馬 柳 泰久 伊藤 のりゆき 金子 順 高橋 真弓 天野 卓 奥脇 知宏
毎日コミュニケーションズ
売り上げランキング: 142121

Rlated & Feedbacks

http://www.trapon.jp/cms/mt-tb.cgi/277