【サイト内検索】


サイト内を検索
WWW を検索










EDIT

« なぜ宇宙人は私たちのウシを盗むんだろう・・・ | メイン | 鯖移転のコメントをくれたサイトさんに感謝です »

2004年11月26日

◆MovableTypeのエントリ数3000個を引き連れてのお引っ越し  [Blog News]

エルエルが行った状況。
MovableTypeの「2.661」の文字コード「UTF-8」だったログを、日本語バージョンの「3.11ja」にインポートして「シフトJIS」に変換しました。エントリの数は3000個くらい。

ま〜MovableTypeを使ってる人にしか関係のナイ話なんで、読みたい人だけどうぞ。

まず大量のログを読み込む前にきちんと新しい方のMovableType自体の設定を完了させておいた方が得策です。ログを読み込んだ後では「すべてを再構築(リビルド)」は簡単には出来無くなっちゃうからです。

エルエルがやったこと

※何事もやる前に、バックアップは出来るだけ取って置いた方が賢明です。

●ファイルのPHP化とページ分割プラグインの導入
MovableTypeのページ分割/Permalinkの変更 (ARTIFACT−人工事実−さん)
PHP化については、エルエルはこのページ分割のプラグインとモジュール化の為に行っています。あと、小さなBBSもincludeで読み込んでいます。
特にそういうコトを何もしない人は、PHPの方が名前がカッコイイから〜・・・って理由だけで変更するのはヤメた方がいいと思います。サーバー側の負担も大きくなるそうですし、ファイルの扱いもめんどくさくなりますし。

●Permalink(個別の過去ログページ)のファイル名を変更
Permalinkを変更 (Chitatopopsさん)
これは、毎日更新される記事のファイル名を変更する方法です。デフォルトだとMovableTypeは「00001.htm〜000031.html」みたいな感じで数字の番号なんですが、これだと移転して記事を移した際に番号がずれてヒドイことになってしまいます。その為に、日付の管理やキーワードを埋め込むなどして変化のないファイル名にします。(ウチのサイトは「日時と時間」がファイル名です)

●テンプレートのモジュール化
リビルドなんて怖くない (Boycott Street 221Bさん)
あなたのmovabletype、重たくないですか?テンプレートモジュール化 (CROSSBREEDさん)

参考にさせてもらったサイトさんです。「モジュール化」って何?って人でも、やれば結構簡単に理解できて出来ると思います。よーするに、テンプレートの記述が同じ場所を一括して管理する方法です。尚、ファイルがPHPファイルじゃないと出来ない方法ですのでそのツモリで。
<? include("/(username)/public_html/○○○.php"); ?>みたいなPHPの構文を使って、たとえばウチのサイトだったらTOPページの上の「ヘッダー」の部分や、「メニュー」の部分など、カテゴリ別、月別などのテンプレート上で重複している部分は、日々の記事のアップの際にはその部分は更新しなくしてしまうのです。(だって、その部分は変更はないのですから)

最終的には、「本文」の部分もモジュール化しました。
そうすると「カテゴリ別アーカイブ」と「月別アーカイブ」の再構築(リビルド)はあっという間に終わるようになりますよ。

最初はモジュール化がムズカシイなぁ〜って人も、是非読んでみると勉強になると思います。そんなに思ってる程は難しくないので大丈夫です。エルエルでも出来たくらいですから。

●あとはちょっとした小技を少々
MTカスタマイズ リンク集 (ブロック崩しさん)
リンク先を常に別ウィンドウ「_blank」にする方法も載っていますが、新しい日本語版のMovableTypeでは同じようにはできません。
変更するファイルは「mt.js」で、エディタで開いて160行目付近の
setSelection(e, '<a href="' + my_link + '">' + str + '</a>');
って部分を
setSelection(e, '<a href="' + my_link + '" target="_blank">' + str + '</a>');
に直すと同じコトが可能になります。(注:大文字になってるのは見えなくなっちゃう為です)
あとあと、「MovableTypeの記事修正を楽にする」っていうEDITボタンの取り付けもエルエルにはかなり重要です。エントリの数が多い人にはかなりありがたい改造方法ですよ。




【そろそろ本題のお引っ越しの部分】

※このやり方を推奨するワケではありません。っつーか、ものすごいムリしてやってるんであまり推奨は出来ませんかも。一応、サーバーを引っ越しする人は参考までにどうぞ。

●エントリーの「書き出し」(エクスポート)
エントリーの書き出し方法はMovableTypeのヘルプにもやり方は書いてあるんですが、MobavleTypeのメニューから「読み込み/書き出し」を選んで、あとは「エントリーを書き出す」ってトコロをクリックするだけです。そうすると大量の文字の羅列が出てきますので、それをコピペしてエディタに貼り付けて「mt.html」ってHTMLファイルにします。
エルエルはコピペできるような量ではなかったので、ブラウザの「ファイルを保存」からすべてを保存して、保存した「mt.cgi」ってファイルを「mt.html」に直して使用しました。それがログです。

ログの量に関してですが、エルエルはエントリの数自体は3000個で、htmlファイルに変換した状態で4.8Mありました。その辺を微妙に参考にして下さいましまし。(エルエルのPCは貧弱なので、4.8MのHTMLファイルをエディタで開いただけで死亡寸前になりまちた)

●エントリーの「読み込み」(インポート)
インポートの方法は、新しいMovableTypeがアップしてあるサーバーに「importディレクトリ」を自分で作成して、先ほどの「mt.html」ファイルをFTPなどでアップします。importディレクトリを作成する場所は、MovableTypeのシステム的なCGIが格納されているのと同じ場所に作ります。「mt.cgi」とか「mt.cfg」とかのファイルと同じ場所です。

そしてまたMovableTypeのメニューから「読み込み/書き出し」を選択して今度は「エントリーの読み込み」をします。
この時、エルエルは「エントリーの投稿者を自分にする」にチェックを入れ、デフォルトの投稿の状態は「公開」にしました。この設定については他にしても大丈夫だと思いますが、一応。
そしてエントリーの読み込み開始。

最初は結構快適に進みましたが、読み込んだログの量が増えるに従って読み込みの速度がどんどん落ちていきます。エルエルは全部をインポートするのに6時間くらいかかりました。(正確には、途中で寝たので知りません)
最初はすべてのエントリーのログをいっぺんにインポートしてみたのですが、やっぱりムリでした。1000個くらいをインポートしたトコロで勝手に止まってしまいました。それでも焦ってはいけません。続きからやれば大丈夫です。

どこまでインポートできたのか?ってのは、一度新しい方のブログ「mt.cgi」にアクセスして、ブログの投稿のメニューの「エントリー」から確認できます。この段階では文字コードが違う人は文字化けしていますが大丈夫です。日付の部分を確認して下さい。
たとえば「○年×月△日」のエントリーが一番最新のエントリーになってたら、そこまでがインポートできたってコトです。先ほどimportディレクトリにアップしたmt.htmlをエディタで開いて、日付の部分を確認しながらまだアップできていないトコロだけを残して、いらないトコロは消してまたファイル名mt.htmlで保存しましょう。(大元のイジる前のログのmt.htmlも安全の為にとっておくこと推奨)

それを再びimportディレクトリにFTPでアップして、先ほどと同じコトを繰り返します。
エルエルはこれを全部で5回くらいやったと思います。エントリーの数が増えるに従ってだんだん転送速度が遅くなるのでそのツモリで。

あとあと、インポートやエクスポートをする際は、IEじゃなくてOperaなんかを使った方がいいかもしれません。オペラとかは、画面の下に転送速度や読み込んだサイズが表示されますんで参考にできますし。IEでやると、一体「動いてるのか?」「フリーズしてるのか?」ってのも区別が付かないのです。
とにかく「読み込み」には大量に時間がかかりましたが、エルエルは無理矢理自分で途中で止めるコトはしないで、勝手にMovableTypeが止まるのを待ちました。エラーが出たりするのが怖かった・・・。

●文字コードの変換について
MovableType文字コード変換スクリプト
エルエルはコレを使用しました。
過去ログをインポートした段階で、リビルドする前にこのCGIで文字コードを変換します。やり方は簡単ですので読んで下さい。かなり大量のログを一気に変換してもエルエルはエラーは出ませんでした。
「ログのインポート1000個位→文字コード変換→また1000個インポート→文字コード変換」と4回くらいに繰り返して分けてやりました。

※重要なコトは、文字コードを変換する際に元の文字コード「Current」は「Auto」にしてやった方がいいと思います。エルエルは最初に「UTF-8」から「シフトJIS」に変換するように設定したら、MovableTypeの設定自体が全部文字化けしました。設定と言うか、「テンプレート全般」の日本語部分が化けました。
エルエルはすべてをバックアップとってあったのでそんなに直すのは大変でなかったのですが、せっかく設定したテンプレートが化けてもいいように、文字コード変換ツールを実行するまでにすべてのテンプレートなどをバックアップしておいた方がいいと思います。コピペしてメモ帳などにすべてを保存しておきましょう。

あとこの変換スクリプトでも変換できない文字などもあるようです。エルエルは「〜」が変換できずに全部ゲタ「〓」になりました(笑。これはどうしようもない問題らしいので、あきらめましょう。

●すべてを再構築(リビルド)する
そして、エントリーのインポートと文字コード変換がおわったら、記事を再構築して終了となります。
っんが、これにもエントリの数が多いと大量の時間がかかるので注意です。エルエルはエントリ数3000で約4時間半かかりました。エルエルは全部いっぺんにやったのですが、サーバー側がエラーにならなかったのが救いかも・・・。

あとあと微妙に重要なコトなのですが、これだけインポートなどを繰り返すなどして大量にサーバーにアクセスし続けると、かなりの負荷をサーバー側にかけているモノと思います。ソレ相応のサーバーでないと、これだけでシステムをダウンさせかねない状況になっていると思いますので注意して下さい。
エルエルはさくらインターネットの上位プランの「プレミアム」ってヤツを借りています。
とりあえず、サーバー側でのエラーは発生しませんでした。

サーバーによっては、大量の持続的なアクセスに関しては自動的に「切断」するようになっているトコロもあるかもしれません。そういうサーバーでは、事実上ここまでのインポートは不可能だと思います。

もともとエルエルがサーバーを移転した原因ってのも、MovableTypeで記事をアップする際が非常にのろいので、サーバー会社に「なんでこんなに遅いの?」って聞いたら、「原因はオマエだ」って言われました(汗。
もともとログの量やアクセス数なども関係するのですが、ウチのサイトが更新するときサーバーのCPU占有率が90%を超える・・・って言われました。(CPUを独り占めしてる最悪ユーザーの典型的やヤツです)
ま〜あんまり文句は言われませんでしたが、事実上の「サーバーを出て行け勧告」みたいなモンかな・・・。ただ、サーバー側が悪いのではないので仕方ないんです。最近はとにかく激安サーバーが増えていますので、それ相応の価格とスペックを見極めて借りた方がいいかもしれません。ただ、自分で言うのも何何ですがウチのサイトはかなり特殊な形状をしてるんで、フツーにMovableTypeをつかって一日に一個の記事でも日記でも書くのならば、別にそんなに心配する必要もないと思います。基本的には、MovableTypeってのは「一日一個のエントリー」で日記を付けていく・・・みたいな使い方が一番適してるシステムだと思いマスマス。

そすると3000個のエントリーってのは約8年分にあたるワケで、そんなに目先の長いコトを考えているシステムなんであり得ませんし。

テンプレートに関しては・・・。
エルエルはコレでMovableTypeのテンプレと作ったのは二回目になるワケですが、使ってみて思ったコトは「極力軽くして、いらないモノはサイトに置かない」ってコトかな・・・。
コレはあったら便利かなぁ〜・・・とか、アレもあったらカッコイイなぁ〜・・・とか、そういうモノって結局はいらないような気がする。エルエルも人のサイトに言ってそういうモノを使った試しがナイ。

ま〜サイト形態によっていろいろあるんで簡単には言えないんですけどネ。
たとえば、ウチのサイトみたいのは「サラっと流して読むタイプ」ですし、逆に「熱心にみんなで議論するタイプ」のサイトさんもあるし。そういうサイトさんでは、必要なモノってのも全然変わってくると思うし。

基本的に、初めて来た人ってのはTOPページを見るので、そこが一番わかりやすくなっているのが鉄則だと思ウ。

ちなみに最後に。
サーバーも移って、テンプレートもきちんとモジュール化して、MovableTypeも最新のモノにしたらビックリするくらい記事をアップするのが早くなりました。マジ感動です。



いろいろ勝手に宣伝コーナぁー


なにかがだめぽの管理人の和茶さんとモナ倉さんによるFLASHお勉強本。
ネットでおもしろFLASHなどを見て自分も作ってみたいなぁ〜って思った人にオススメのとってもわかりやすい説明の本です。FLASH作品の具体的な作り方から公開の仕方まで、ソフトの使い方だけではなく様々な部分のフォローもしてくれるのがとっても嬉しい本です。
実際のFLASHの作成画面をたくさんつかって、とてもわかりやすく説明してくれていて、初心者の人にはとてもわかりやすいと思います。

エルエルもこの本で勉強してマジにFLASHを作ろうと計画中・・・。







イラ天2
イラ天2 by LALAMIX(ララミックス)さん
エルエルがただいまリアルにお勉強させてもらってる、LALAMIX(ララミックス)さんのイラストレーターのお勉強本。エルエルも結構あちこちのイラストレーターの本を読んだけど、「ココのテクニックを書いてよ!」みたいのは全然書いてないのが多く困っている時こちらの本とご対面。
イラストレーターを使いつつ幼女やらを描きつつ、いまいちいつまでたってもステップアップできないエルエルみたいな人にはマジオススメ。ツールの使い方を具体的にピンポイントで教えてくれるすばらしい本なのです。

「パスファインダ」やら「マスク」やらの使い方を3年経って初めて知ったエルエルです・・・。(ホントの話)
↓ちょっと本の説明をば
ちなみに「イラ天1」と「イラ天2」は内容は続き物で、イラ天1の方は初心者の皆様に安心なベジュ曲線を使ったキャラクターの基本的な描き方などが内容で、イラ天2の方はより応用的なレイヤーを操作しつつパスファインダなどを使ったテクニックの方法などなどが書いてあります。自分のスキルに合ったのをチョイスするのがエルエルのオススメ。ちなみにエルエルは両方買った。そして昔よりちょっとカワイクなれたw

トラックバック

このエントリーのトラックバックURL:
http://elel.sakura.ne.jp/mt/mt-tb.cgi/3043

このリストは、次のエントリーを参照しています: MovableTypeのエントリ数3000個を引き連れてのお引っ越し:

» blog雑感 from half & lite diary
MovableTypeのエントリ数3000個を引き連れてのお引っ越し こう言うの見ると、真夜中の鯖屋の誰もいない部屋で、HDDだけが凄まじい勢いでガリガリ言って... [続きを読む]

トラックバック時刻: 2004年12月30日 19:11

» スパムコメントを防ぐ為にMovableTypeを総入れ替えの巻 from ユキノヒノシマウマ
 スパムコメントが無茶苦茶に増えてきたのと、MovableType(MT)の調子... [続きを読む]

トラックバック時刻: 2005年02月09日 09:57

» スパムコメントを防ぐ為にMovableTypeを総入れ替えの巻 from ユキノヒノシマウマ
 スパムコメントが無茶苦茶に増えてきたのと、MovableType(MT)の調子... [続きを読む]

トラックバック時刻: 2005年02月09日 10:01

» MT3.15にバージョンアップ from ☆MAYUMI_BLOG☆
めんどくさがっていて、先延ばしにしていたバージョンアップを終えました。 導入の際... [続きを読む]

トラックバック時刻: 2005年02月16日 13:10

» レビュー記事移動(エントリの読み込み書き出し) from *...:Z S U S:..*
ブログ自体何個もあって意外と2個ものブログに分けてレビューを書いていたもののどっ... [続きを読む]

トラックバック時刻: 2005年04月05日 14:23

» MovableTypeでのBLOGの「書き出し」と「読み込み」 from Harry's Blog 2
 今回、MySQLに移行したところ、システムがすべて消えてしまったので、すべて最... [続きを読む]

トラックバック時刻: 2005年10月10日 22:49

» MovableTypeでのBLOGの「書き出し」と「読み込み」 from Harry's Blog 2
 今回、MySQLに移行したところ、システムがすべて消えてしまったので、すべて最... [続きを読む]

トラックバック時刻: 2005年10月10日 23:01

» 過去ログ保管終了 from うずらのタマゴ ver.4.1
前のブログから、 xreaの広告免除権を今のサーバーに移しました。 なので、向こ... [続きを読む]

トラックバック時刻: 2005年11月03日 10:46

» 過去ログ保管終了 from うずらのタマゴ ver.4.1
前のブログから、 xreaの広告免除権を今のサーバーに移しました。 なので、向こ... [続きを読む]

トラックバック時刻: 2005年11月03日 10:50

» 過去ログ保管終了 from うずらのタマゴ ver.4.1
前のブログから、 xreaの広告免除権を今のサーバーに移しました。 なので、向こ... [続きを読む]

トラックバック時刻: 2005年11月03日 10:50

» MovableType3.2における一度に処理できるエントリー from いぬはらひろし、おまけでるい ちっぷすぶろぐ
とある MovableType3.2 のお仕事で、大量のCSVデータをインポートデータに変換して投稿する必要があったのですが「さすがに、同じ日付・時間のエントリ... [続きを読む]

トラックバック時刻: 2005年12月03日 13:09

» 過去ログ保管終了 from うずらのタマゴ ver.4.1
前のブログから、 xreaの広告免除権を今のサーバーに移しました。 なので、向こ... [続きを読む]

トラックバック時刻: 2005年12月07日 12:25