ブログのサーバー移転
2005年6月末、割高なウィンドウズ系サーバーから割安なリナックス系サーバーへ引っ越すことを決意しました。私は、当初、ブログを別サーバーに移転することは容易なことだと考えていたのですが、これは大間違いでした。また、引っ越すこともあるかと思うので、備忘録として、移転方法を書きとどめておきます。
1. 一見簡単そうなブログ移転
私は、もともとマイクロソフトのフロントページでサイト構築をしていたので、フロントページ・サーバーエクステンションズが標準装備されているウィンドウズ系レンタルサーバーを利用していました。
しかし、ムーバブルタイプでブログをするようになってから、ウィンドウズ系サーバーでホスティングしてもらう意味がなくなり、リナックス系サーバーに切り替えることにしました。
最初に引越し先として選んだのは、ホストサーチドットコムで高く評価されていたドッグゴーンテクノロジーという格安サービスの会社でした。この会社は、後で料金を返還してくれた良心的な会社なのですが、ここへのブログ移転は失敗に終わりました。
ムーバブルタイプのブログを移転する時、phpMyAdmin を使ってMySQLのデーターベースの再構築します。Pirosy さんが、その方法を次のように簡単にまとめています。まず、旧サーバーからデーターベースをバックアップするには、
- phpMyAdmin にログインします。この際、使用言語・文字コードが選べる場合は MovableType で設定したものと同じものにしたほうがいいです。もしない場合は English を選んでおくのが無難だと思います。この説明では English を選んだものとします。
- 左のフレームから MovableType で使用しているデータベース名を選びます。
- 右フレームの上部の「Export」をクリックします。
- 「Export」という囲みの中の「Select All」をクリックしてすべてのテーブルを選択します。
- 「SQL options」という囲みの中の「Add 'drop table'」は、チェックすると復元するときにすでに存在するデータベースを削除してから復元するようになります。Pirosy 的にはチェックしておいた方がいいような気がします。
- 「Save as file」をクリックします。その囲みの中の「Compression」はバックアップデータを圧縮するかの設定です。これはお好みでどうぞ。
- 一番下の「Go」ボタンをクリックすると、バックアップデータがダウンロードされます。
そして復元するには、
- バックアップ方法の1.〜2.の操作をします。 右フレームの上の「SQL」をクリックします。
- 「ファイルを選択」ボタンをクリックして、バックアップしたファイルを指定します。
- 下の「Go」ボタンをクリックします。
ととても簡単そうに見えます。実際に簡単に移転に成功した人もいるのでしょうが、私の場合はそうではありませんでした。
2. 二ヶ月の放浪生活
まず、ムーバブルタイプをインストールする段階でつまずきました。ドッグゴーンテクノロジーでムーバブルタイプをインストールし、“mt-load.cgi”にアクセスし、システム設定をしようとすると、
Movable Type の初期データをシステムに読み込んでいます...
データベース・スキーマを読み込んでいます...
Table 'mt_author' already exists at mt-load.cgi line 197.
というメッセージが出てきます。新しいサーバーで、初めてデーターベースを作ったというのに、なぜ既にテーブルが存在しているのか、さっぱりわかりません。自動的に作られる17のテーブルをすべて削除しても、自動的に復元されるし、再インストールしても、“Table 'mt_author' already exists at mt-load.cgi line 197. ”というメッセージは相変わらず出てきます。
そこで、このメッセージを無視して、“mt.cgi”にアクセスして、ログインしました。しかし、ログイン後の画面が異様です。「エントリーの書き出し・読み込み」で復元を試みても、一つのエントリーしか復元されません。どうやら、インストールが不完全なようです。
次に、Pirosy さん推奨の方法で、復元しようとしました。すると、
"DROP DATABASE"ステートメントは禁止される
というエラーメッセージが出てきます。そこで、次に、テーブルをあらかじめ各テーブルを空にし、“drop table”のチェックをオフにしたバックアップファイルでダムプしてみました。すると、
エラー
あなたは SQL パーサーでバグを見つけられるかもしれません。あなたのクエリーを念入りに確かめて、引用符が正しくミスマッチがないかチェックしましょう。その他の失敗にはテキストエリアで引用した外側にバイナリーコードが付いてファイルがアップロードされてしまったような原因が考えられます。また、あなたのクエリーを MySQL のコマンドラインを使って試すことも出来ます。MySQL サーバーは以下のようにエラーを出します。そこには問題を解決する手助けがあるでしょう。コマンドラインでは成功しても、まだ問題がある場合、パーサーが失敗する場合には、問題のある SQL クエリーをひとつの文に減らしてみて下さい。そして以下のセクションでデータを切り取ってバグ報告を送って下さい:
----切り取り開始----
eNpVT01P20AUvO+vmAPHeONd2yHszYQVIOWrdkqvWZrQGDmOiR1Cf
g4SvpYLCCiR6IlwQpyQKn4ANy69Vqi7rlS1h/cOM/Nm3sgg6AQCDY
YGR1O2BZhj62HgLiNhT3NLQhp7ocDa7kAgO4pTNc2GUxpH+zQdpZV
jcMrXwW3brTJWtT3YtnCZ8DzEw/EG5EmKNdJahB+aAi61KXetLFfJQ
E0H5GMYoBNW4G/Ldq+CPanzPkUJdiVq1Cbdli+fY0yK4056e50jaTS
CY2TQxlDM0pmJ6Tpt7cFDpU1yw+sOimjLAv6vdbCH4y1oYawNRunRM
PHw2kWTZLSmBtglOepqFbn87lpNF4oc0KTYW5IM8VLcVM8CMSTzyoe
TbKS+Pb2/evZ4+37xbMw7T2szlHD1Rt4Hfe/wJlw3PL48nRZPJ0uzx
7NLq6L1+KngEO5Q726EZha/1J/qv3NXmnmrvih941AP1FfVJRPsmih+
qWkEUi/J7Hl9/xNP5T/K34D3IecKQ==
----切り取り終了----
さらにわけのわからないエラーメッセージが出てきます。データだけのバックアップファイルだけでなく、データーと構造のバックアップファイルも試みましたが、いずれも失敗に終わりました。
私は、ドッグゴーンテクノロジーをあきらめ、もとの会社(パルコム)に戻ろうとしました。しかし、ちょうど契約期限が切れてしまい、新たに契約し直さなければなりませんでした。契約し直すと、プランの内容ががらりと変わっていて、単純に復元するわけにはいきません。
新しいプランでは、CGIスクリプトにアクセスすることすらできません。権限は755に設定されているし、アスキーモードで転送したのに、なぜアクセスできないのか理解できません。
そこで、新たに、サーフスピーディーという第三のホスティング会社と契約しました。急いでいたので、ネットでの評判は確認しなかったのですが、契約後、ひどい会社だということに気が付きました。電話でサービスの押し売りをしてくるし、解約しようとしても受け付けずに、クレジットカードで契約更新の料金を引き落とそうとするし、かなり悪質な業者でした。やはり、事前にネットで評判を確かめるべきですね。ちなみに、ここでもドッグゴーンテクノロジーと同じ症状が出ました。
3. 原始的な方法が一番確実である
私は、これまで、日本のレンタルサーバーは価格が高くて質が低いという先入見を持っていて、アメリカのレンタルサーバーばかりを使ってきたのですが、一度日本のレンタルサーバーも試してみようという気になりました。
私が選んだのは、エックスサーバーという、一つのアカウントで複数ドメインをホスティングすることができる会社です。ムーバブルタイプが利用できると明記されていたので、ここなら間違いないと思って、申し込みました。
確かに、ムーバブルタイプのインストールはうまく行きました。しかしMySQLのバックアップはうまくいきませんでした。ドッグゴーンテクノロジーと同じ症状が出るのです。コントロールパネルでは、“Privileges: ALL PRIVILEGES”というように、権限があるかのような表示になっているものの、phpMyAdmin では、権限なしとなっているので、このあたりに原因があるようです。
サポートセンタに問い合わせたところ、権限はアカウントに対して既に与えられているとのことだが、何度やってエラーが出るし、そのたびにムーバブルタイプにログインできなくなり、初期化しなければならなくなるので、業を煮やして、次のようなメールを出しました。
ブログの移転は、初体験なので、自力で、バックアップファイルを復元することはできそうにありません。必要なら、手数料(いくらぐらいでやってもらえますか?)を支払いますので、そちらで復元をしてもらえませんでしょうか。権限のない私よりも、権限のある管理人の方が、作業が容易であると思います。バックアップ用のファイルはメールに添付して送ります。
しかし、このオファーは、サポートの対象外ということで断られました。
そこで、次に、「エントリーの書き出し・読み込み」で復元を試みたところ、大部分のエントリーを復元することができました。しかし、最近一ヶ月分の投稿はバックアップされていません。理由はよくわかりませんが、多分「すべてを再構築」しないと、保存されないのでしょう。
復元されないデータのうち、記事本体はHTML形式で保存してあるから、容易に復元できるのですが、コメントは保存していなかったので、復元方法に悩みました。Pirosy さんのコメント欄でも話題になっているように、MySQLのバックアップファイルは、テキストエディタで開いても、文字化けするので、読み取れません。
知り合いに頼んできちんとしたシェアウェアの高機能エディタで開いてもらったところ、文字化けせずに読めたそうです。
実は、シェアウェアを使わなくても、読み込む方法があります。MySQLのバックアップファイルを右クリックし、“プログラムから開く→Internet Explorer”を選んで、ブラウザで開きます。デフォルトでは、フォントが簡体字中国語となっているため、文字化けしています。そこで、“表示→エンコード→Unicode(UTF-8)”を選びます。
すると、文字化けは解消され、コメントが、次のような形式で保存されていることがわかります。
INSERT INTO `mt_comment` VALUES (314, 1, 162, '219.32.168.50', '老婆', NULL, '', NULL, 1, '「近代市民革命は、経済的に自立したブルジョワたちが、寄生虫化した王侯貴族を妥当することで成し遂げられた。」\r\nは、\r\n「~打倒すること~」\r\nですよね。', '2005-03-11 09:09:38', '20050311090938', NULL, NULL); INSERT INTO `mt_comment` VALUES (315, 1, 162, '211.124.255.136', '南海人', '', '', NULL, 1, '北朝鮮問題は北朝鮮という国が問題なのではなく、金正日体制=金正日が問題なのである。金正日を排除するのに経済制裁も援助も効果がないと云う論は説得力がある、政府、マスメディアがなぜこのことに気が付かないのか、あるいは気が付いていても公表する勇気がないのか?\r\n\r\n本質である金正日を早く排除する方法について議論が高まることを期待する。', '2005-03-11 09:28:09', '20050311092809', NULL, NULL); INSERT INTO `mt_comment` VALUES (316, 1, 162, '220.55.208.102', '賊人', '', '', NULL, 1, '経済制裁という外側からの封鎖は、情報遮断という内側からの鎖国と同じベクトルであり、確かに効果は薄くかえって北朝鮮の孤立を強化継続させる効果しかないかもしれませんね。', '2005-03-11 13:33:40', '20050311133340', NULL, NULL);
これを見てもわかるように、コメントは、どの記事に対するコメントなのかがわかりません。記憶を頼りに、見当をつけながら投稿するしかありません。未保存のコメントは、50ほどあり、一つ一つ、“\r\n”で行換えし、コピーアンドペイストを繰り返すのは、骨の折れる作業ですが、結局、全部復元するのに一日とかかりませんでした。やはりデーターベースを復元する一番確実な方法は、手動による原始的な方法ですね。
二ヶ月間ブログがダウンしたことで失った読者の信用は大きいけれども、いろいろ学ぶことも多かったです。まず、phpMyAdmin によるMySQLのバックアップはあてにならないこと、「エントリーの書き出し・読み込み」を使う場合、ちゃんとすべての投稿がバックアップされているかどうかファイルを開いて確認すること、サーバーを選ぶ時、ムーバブルタイプのサポートを明言しているかどうかを確認することなどなど。
私のように、たくさんのブログをやっている場合、個別的に行わなければならない「エントリーの書き出し・読み込み」というバックアップの方法は不便なのだけれども、万一の時のことを考えると、多少の手間は仕方がないかなという気がします。




