MovableType 5 の復元にはまったけどまあこんなもんで良かろう

| Comments(1)

このサーバはxreaで借りてる。5月早々に年間契約が切れるので、coreserver-miniに移転しようと考えたのが数カ月前。
年間契約でそう値段は変わらないし、MLなんてサービスも面白そうだった。
このドメイン下で利用してるものは、MovableType(ここと、更新されてないけど相方の)、メール、去年相方用に作ったSNS(OpenPNEで遊んでた)。
xrea内での移転経験は2度ほどあるし、大した作業量でもねえなと思っていたわけだ。

で、作業。
サーバに置いたままのメールの移転は半端な出来。フォルダ切ってあった分が移転出来なかった。まんまFTPしただけじゃ読めないのな。ルートにあったぶんは読めたんやけど。
正しくはIMAPのクライアントを使うなりなんなりで動かすべきなのだろう。新しいサーバにドメイン移転した後に移動してたんで、自分に転送しようにもエラーメールのみ移転後のサーバに届くとかの謎の振る舞いをしていた。で、あきらめて外部のメールアドレスに転送することで解決。。。ということに。
OpenPNEは長らく触ってなかったせいで管理者パスワードを忘れてた。どっかにあるのだろうけど、もともとイベント用にたてたものやったからそのまま削除。必要ならまた作ればいいさってことで相方と同意。
MovableTypeの移転は、中でも一番簡単。。。というか、知れた作業だと思っていた。

旧サーバではver.5で運用していた。ローカルをざっくり探したけどそのときダウンロードしたファイルが見当たらない。
今のダウンロードはver.5.01。バックアップやら復元やらは同じバージョンでやってくださいと熱くマニュアルには書いてあったけど、まあこのぐらいの違いなら大したことはあるまいとたかをくくって新サーバにインストールした。

旧サーバのバックアップは、システムのバックアップからzip形式でダウンロード。最初は圧縮しないオプションを選んでいて、/tmpに吐かれたものが取得できないことに焦った。xreaのサーバでの/tmp取り扱いについては公式のコメントが見つからず、うだうだした挙句sshで様子を見に行って、とりあえず/tmp以下のバックアップされた画像ファイルやらmanifestやらを削除した。実際、中身はほとんどが謎名前のフォルダになっていて、消そうとするとpermission deniedされる。まあ、仕方ないので放置。

次に、新サーバでzipを使い復元。復元先のブログのサイトパスやらURLやらを確認された後、エラーが出た。内容はうろおぼえだが(理由は後述)、BackupRestore.pmでエラーが出ている模様。LibXML.pmのどこかで止まったようだ。失敗した、というだけのメッセージだったと思う。internal errorとか言ってたような。
ファイル名からしてパースの問題のようだが、何せバージョンがちょっと違うことに引け目もある。出来る限りのことはやらないとなあ、と、zipを展開してmanifestをアップロードする方法を試してみた。しかし同じエラー。次にimportsに展開後のファイルをFTPして復元する方法を試そうと思ったところ、coreserverのお試し期間ディスク容量制限に引っ掛かった。いったいどれだけ少ないねん、と購入プロセスを踏んだが、制限を解除されるまでに24時間かかるらしい。

正攻法としては、この次にはローカルにperlやら同じ環境を作って、バックアップファイルの何に引っかかっているのかを確かめるべきやったんやろう。でもさすがに深夜2時からMySQLやらApacheやら作るのも面倒。横では相方がすやすや眠っている。適当にぐぐっても手掛かりになるような情報はなく、他に手も思いつかず、寝た。


GW中に作業を終わらせるつもりが、ぼんやり筑波山観光などしていたせいで今日まで何もせず。
さすがに旧サーバの内容が有料契約終了で壊れてしまうと笑えないと思い、再びトライ。やっぱりエラーは同じ。
システムのツール内には記事のみのエクスポート機能がなく、manifestファイルからそれを自分で取って来てインポート作業かよ。。とかなり悲しい気持ちになった。(実際には、ブログのツール内に記事のエクスポートがあった。この時はそれに気づいていなかったけどな)

さてどうしたものか、と焼酎を飲んだところで、DBごとバックアップを試したらいいんじゃないかと思いついた。

もともと、スキーマに大差はないだろうと思ってたわけで。phpMyAdminを使い、DBのエクスポートを利用。これまでのエラーのせいで、新サーバにはすでに幾つか無駄なレコードが出来ているようなので(復元されるブログのIDがエラーの度に増えていく)、drop tableと if not existsのオプションを追加。出てきたsqlファイルの create databaseを削除、useの中身を新サーバのユーザ名に変更して、さっくりインポート終了。
新サーバのMovableType管理画面にアクセスしてみると、mt-upgrade.cgiが一瞬反応しただけで、管理は利用出来るようになっていた。2つのブログの設定やら、問題なし。xreaのときとcoreserverでとユーザ名が微妙に違うので(登録時に同じに出来るのかもしれないが、思いつかなかったので)、その辺/virtual以下の設定を変更した。

素晴らしい、これはメモに残すべきだなと、泣かされたエラーの中身をログに見に行ったら、当然のようにそれも旧サーバと中身が同じになっていて判明しなくなってしまった。まあ、仕方ない。

で、再構築。が、ここでもエラーが出る。ブログのメインページ、サイドバー、で、mtWidgetSetに問題ありらしい。MTIfに引っかかったようなので見てみるが、ほぼデフォルト状態なのに何故かなあと少し考えた。結論は、旧サーバで適用していたスタイルをまた持ってくれば解決する。page_columnsの定義あたりじゃないかなと推測してはみたが、動いたので気にしない。

他は特に大きな問題もなく、今に至る。
実際、MovableTypeをそういじってない(カスタムフィールドって何?グローバルテンプレートって何に使うの?)状態なので、もしかしたらその辺に問題が出る場合があるのかもしれない。ここの場合、テンプレートのスタイルシートの中身が移っていなかった。そのぐらいなら手動でコピーしてくればいいので、大きな問題ではない。あと、画像のサムネイル、ポップアップページの場所がよくわからんってのもあったか。FTPで画像ファイル本体を上げて、asset_cを作成してそれも上げる。新サーバにまだそのフォルダがないのは、移動してから画像を上げてないからかもしれない。FTPでサムネイルは復元したけどいくつか足りてないらしい。まあ、私としては今のところどうでもいい。

んー。頑張ったな。

コメント(1)

comment test

コメントする

Recent entries

エイリアンが地球にやってきて住んでいろいろあるSFらしいよ
とだけ聞かされて、そりゃ面白そうだなと思…
MovableType 5 の復元にはまったけどまあこんなもんで良かろう
このサーバはxreaで借りてる。5月早々…
GW中にサーバ移転予定
coreserverに移動するつもり。…