2007/12/27
MTでPHPモジュール化【金策冒険家エイジの億万長者への路】vol.167
[2007/12/27] 金策冒険家エイジの億万長者への路 vol.167 ──────────────────── http://tinyurl.com/dtqf ── 今年最後のメルマガです。 Movable Typeというあまりにも有名なブログツール。 とても便利ですが、不満がないわけではありません。 中でも「再構築」という作業が思いの外ストレスです。 そこで、できるだけ「再構築」しないで運営できるようにして みました。 ━━【目次】━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ◆ [本日のコンテンツ] ・MT3.35でPHPモジュール化してみる ・アドセンスの「新しい広告管理」をしてみる ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 【本日紹介する本】 ──────────────────────────────── 「PHPモジュール化」できたのはこの本のおかげ♪ ▼ 『AjaxとPHPによる MovableType高速&最強システム構築法』 (藤本壱著・技術評論社)⇒ < http://tinyurl.com/yscfdo > ──────────────────────────────── インストール手順などの基礎知識から効果的なサイト運営方法まで ▼ 『Movable Type WEBデザインの新しいルール』 (荒木勇次郎著・松永英明著 )⇒ < http://tinyurl.com/23soaq > ──────────────────────────────── ──────────────────────────────── MT3.35でPHPモジュール化してみる ──────────────────────────────── ▼まずはMovable Typeについて▼ Movable Type(以下MT)というブログツールがあります。 これを利用すると、自分仕様のブログを構築できます。 デザインを自由に変更でき、必要な機能を追加することも可能 です。 livedoor Blogや楽天広場など、既存のブログサービスでは飽き 足らない人、不満を解消したい人にとっては打ってつけのブロ グツールの1つです。 ただし、自由を得るには相応の対価を支払わねばなりません。 MTを利用して、思いどおりのブログにするためにはある程度の 知識と技術を必要とするのです。 要するに誰でも簡単に、というワケにはいきません。 ▼エイジのMT歴は1年8ヵ月▼ 私がMTを使用し始めたのが、2006年4月。 サーバーにインストールし、CSSをいじくってデザインを変更、 どうにか様になるまで1ヵ月ぐらいかかったと記憶してます。 当時のバージョンは「Movable Type 3.33-ja」でした。 その後2回バージョンアップして、2007年12月現在「Movable Type 3.35」でブログ運営しています。 ちなみに、現在の最新バージョンは「Movable Type 4.1」。 リリースされたとき、MT4にバージョンアップしようか迷いまし たが、バージョンアップは見送ることにしました。 ▼MT効果はありがたいが……▼ MTを導入する以前はちまちまHTMLでホームページを更新してい ました。 この作業、膨大な労力がかかるため、伝えられる情報量に限界 があり、更新速度もけっして迅速とは言えませんでした。 そして、その苦労が報われる訳でもありませんでした。 それがMTを導入した途端、情報量も増え、スピードもアップし ました。 要するに作業効率が格段に向上したのです。 1つの記事を書くのに3時間かかっていたのが1時間で書けるよ うになったり、1つの記事を書く労力で3つぐらいの記事を書け るようになったりしました。 来訪者数も増加してくれたおかげで、苦労も報われやすくなり ました。 それから1年……。 最初はつまずきながらでしたが、だんだんカスタマイズのコツ をつかめるようになってきました。 と同時に、MTに対する不満も感じ始め、どうにかしたいという 思いが徐々に蓄積されてきました。 ▼再構築はサーバーに負荷を与える▼ MTを導入して定期的なブログ運営をしている人であれば、誰も が感じる不満があります。 「再構築」という作業です。 例えばブログのある1ヵ所を変更したい場合、それがたった1文 字、あるいはほんの1px(ピクセル)であっても、「再構築」 しなくてはなりません。 ※再構築が必要ないカスタマイズもあります。 「再構築」とは古いデータを新しいデータに書き換えることです。 これが1ページ2ページなら問題ないのですが、記事が増えるに 従ってページも増えていくので、その分書き換えに時間がかか ります。 100ページあれば100ページ分、1000ページであれば1000ページ 分です。 時間がかかるだけでなく、この作業自体サーバーに負荷を与え るものなのです。 サーバーに負荷を与えすぎるとエラーが表示されて、「再構築」 は強制終了。 場合によってはサーバー会社から警告が届くことも。。 これが心臓によくないのです。 ▼たった1文字で7分間中断▼ 私の運営するあるブログでは2007年12月現在、400件以上の記事 が掲載されています。 再構築すると400ページ分(本当はもっと)、データを書き換え なくてはなりません。 先日、その時間を計ってみました。 驚異の7分超え! 一度再構築すると、7分作業が中断してしまうのです。 ▼今こそ立ち向かおう「再構築」問題に▼ 私の借りてるレンタルサーバーはとっても安いので、400ページ 分も再構築をすると、ときどきエラーが発生します。 6分ぐらい正常に再構築した直後、「500 サーバーエラー」と 表示されると、「オォォォーイ!」と叫んでしまいそうになり ます(というか叫ぶ)。 これがたった1文字の修正でも、同じ負荷がかかります。 今後もっと記事が増えてきたら、確実に再構築する度にサーバー エラー発生という事態に陥ります。 というわけで、これまで騙し騙し運用することで直視すること を避けてきた「再構築」問題に、真っ正面から取り組んでいか ざるを得なくなったのです。 ▼「再構築」問題を解決する2つの方法▼ この「再構築」問題を解決する方法は2つ。 1.もっと回線が太いサーバーに乗り換える 2.PHPを導入して、モジュール化する 私は2の方法で解決しようと思いました。 「PHP」を導入した今も、「PHP」が何なのかよくわかっていま せんが、MTの「再構築」問題を解決できる、ということは知っ ていました。 PHPは、HTMLの中に組み込むことができます。 サイト全体を部分部分(モジュール)に分け、部分分けした場 所の中身をPHPで読み込むという仕組みをつくることで、「再構 築」の負荷を格段に低減できるのです。 これを「PHPモジュール化」と言います。 ▼ただのモジュール化とPHPモジュール化▼ MT3.35はサイトを部分(モジュール)化する機能が標準装備さ れています。 これを利用することで、直観的にブログの表示内容を変更でき ます。 例えば、下の方に表示させていた「広告」モジュールを上の方 に持ってくるには、「広告」を選んで一番上にマウスでドラッ グするだけです。 その後、その表示位置を保存して再構築すれば、すべてのペー ジでその「広告」を表示させていた部分が、サイトの一番上に 表示されます。 これがただのモジュール化です。 このモジュール化ができるようになっただけでも進歩ですが、 再構築しなければ変更は反映されません。 1000ページあれば1000ページ分のデータ書き換えをしなくては ならないのです。 しかしPHPモジュール化をすれば、1000ページあろうと10000 ページあろうと、再構築するページは1ページで済みます。 正確には、モジュール化した部分(実質1/Xページ)の再構築 だけで、すべてのページが変更されるのです。 ▼PHPはHTMLに組み込むことができる▼ なぜそんなことができるのか? それは、PHPがHTMLに組み込むことができるから、です。 ホームページは骨格(テンプレート)と中身(データ)で構成 されています。 HTMLで骨格を組み、その中身をPHPで引っぱり出して表示させ ます。 下記の例ではホームページを「バナー」、「記事」、「メニュー」、 「広告」、「フッター」の5つにモジュール化しました。 【例:ホームページの骨格】 ┏━━━━━━━━━━━━━━━━━━━━━┓ ┃ ┃ ┃ バナー ┃ ┃ ┃ ┣━━━━━━━━━━━━━━┳━━━━━━┫ ┃ ┃ ┃ ┃ ┃ メニュー ┃ ┃ ┃ ┃ ┃ 記 事 ┃ ┃ ┃ ┃ ┃ ┃ ┣━━━━━━┫ ┃ ┃ ┃ ┃ ┃ 広 告 ┃ ┃ ┃ ┃ ┣━━━━━━━━━━━━━━┻━━━━━━┫ ┃ ┃ ┃ フッター ┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━┛ ※等幅フォントでご覧下さい。 【記述例】 <?php include('<$MTBlogSitePath$>banner.php'); ?> 予め、「banner.php」というファイルにはバナー部分の中身 (タイトル名やサイト説明文など)を入れておきます。 次にこの1文を、バナーが表示される位置に記述します。 すると、「banner.php」というファイルが読み込まれ、バナー の中身が表示される仕組みです。 何百ページあろうと何千ページあろうと、モジュール化した部 分は同じです。 1ページ目のバナー部分も1000ページ目のバナー部分も、表示 させる中身は同じ。 ただのモジュール化のときは、1000ページあれば1000ページ すべてを書き換えていました。 PHPモジュール化のときは、書き換える部分は「banner.php」 というファイル1つだけです。 すべてのページはバナー部分を表示させるとき、「banner.php」 を読み込むからです。 ▼魔法のようなPHPモジュール化▼ いまいちピンと来ない方のためにたとえ話で説明します。 ラーメン店を開業したAさん。 オープンを告知するチラシを作成するため印刷屋さんと打ち合 わせ。 告知内容とデザインを決め、校正も完了。 あとは印刷するだけです。 数日後、完成したチラシが5000枚。 両面カラー印刷にしたのでけっこう経費がかかってます。 しかし、完成したチラシをよく見ると、致命的な欠陥が! お店の電話番号が1つ、間違っていたのです。 「3」が「8」になっていました…… これでは出前も予約も入りません。 ということで泣く泣くチラシを作り直しました。 5000枚。 たった1文字の訂正のために、経費が倍になってしまいました。 弱った、弱った。 これがただのモジュール化です。 さて、こちらはお好み焼き屋さんを開業したBさん。 オープンを告知するチラシを魔法の印刷屋さんに頼みました。 告知内容とデザインを決め、校正も完了。 あとは印刷するだけです。 数日後、完成したチラシが5000枚。 両面カラー印刷にしたのでけっこう経費がかかってます。 しかし、完成したチラシをよく見ると、致命的な欠陥が! お店の電話番号が1つ、間違っていたのです。 「8」が「3」になっていました…… でもそこは魔法の印刷屋さん、さっと一振り杖を振るうと、 あっという間に全てのチラシが正しい電話番号に早変わり。 もちろん追加料金もありません。 めでたし、めでたし。 これがPHPモジュール化です。 ▼PHPモジュール化への懸念▼ いいことずくめのPHPモジュール化。 一番いいのはMTを導入した当初からPHPを導入することですが、 すでに400記事以上書いてしまっています。 PHPを導入するには「〜.html」を「〜.php」にする必要があり ます。 私のサイトの場合、すでに400以上の「〜.html」というページ が存在していますが、それをすべて「〜.php」にしてあげなく てはなりません。 PHPについて何も知らない私は、それがとてもやっかいな作業の ように思えてこれまでPHPを導入せずに来たのでした。 ▼案ずるより産むが易し▼ といってもこの作業、やってみるとえらく簡単でした。 文字通り、「〜.html」を「〜.php」にしてやれば、自動的に 「〜.php」のページを作ってくれるのです。 すごいぞ、MT! サーバー上では「〜.html」と「〜.php」のページが混在して いる状態。 少なくとも800ページ分はあります(本当はもっと)。 今後はPHPでやっていくので、新しい記事を書いたら「〜.php」 というページが生成されます。 「〜.html」というページは生成されません。 昔のページを改訂したら「〜.php」のページだけ訂正されて、 「〜.html」のページは訂正されません。 つまりPHPに移行したら、HTMLは死んでしまうのです。 役目を終えた「〜.html」のページはサーバーの容量もかさむ ので削除することになるのですが、すると新たな問題が発生す るのです。 ▼「〜.html」から「〜.php」へさりげなく移動▼ 削除予定の「〜.html」のページ。 しかし、その「〜.html」のページをブックマークに登録して いる人もいるはずです。(いなかったりして……) その人がある日、私のブログに訪れたらエラー表示画面が出て、 サイトが閉鎖されたと勘違いしてしまうかもしれません。 さらに、現在検索エンジンに登録されているのはすべて 「〜.html」のページ。 できたてホヤホヤの「〜.php」のページはインデックスされて いません。 つまり、このままだと「〜.php」のページがインデックスされ るまでの間、検索エンジン経由の来訪者は来られない、という ことです。 来たくても。 で、どうすべきか本に書いてありました。 簡単に説明すると、すでに削除して存在しない「〜.html」の ページに誰かが来たら、自動的に「〜.php」のページに移動 させる、という方法です。 早速実験開始! FTPソフトでサーバー上から「〜.html」のページを全削除。 その後、任意の「〜.html」へアクセス。 きちんと機能していれば、「〜.html」というもう存在しない ページへのアクセスは自動的に「〜.php」という存在する ページへ振りかえられるはずです。 結果、成功! 何事もなかったかのように瞬間移動しました。 URLが「〜.html」から「〜.php」に変わったことに気付く人は ほとんどいないのでは、と思わせるほどのさりげなさ。 すばらしい! ──────────────────────────────── 「PHPモジュール化」できたのはこの本のおかげ♪ ▼ 『AjaxとPHPによる MovableType高速&最強システム構築法』 (藤本壱著・技術評論社)⇒ < http://tinyurl.com/yscfdo > ──────────────────────────────── ▼PHPモジュール化の成果やいかに▼ あとはPHPモジュール化をするだけ。 最初はおおざっぱに、次に各モジュールを細分化。 最終的にただのモジュール化と同程度にPHPモジュール化を施 しました。 見た目は変わりませんが、ちょっとした訂正や修正、実験が 驚くほど簡単になりました。 例えばクリスマスキャンペーンを告知する広告を貼っていた 場合、その最終日に「今日が最後」とか「キャンペーン、 今日まで」という文言を入れたいと思ったとします。 以前であれば、文言を入れた後、再構築。 7分以上の時間をかけて全ページを書き換えていました。 それが今や、5〜10秒で終了です。 今までの再構築に対するイライラやドキドキ、空白はいったい 何だったのでしょうか? もちろんわかっています。 無駄だったのです。 PHP、導入してわかりました。 【結論】 PHPモジュール化して大正解。 MTの再構築をなんとかしたい方は、導入の検討をお勧めします。 ▼エイジから一言▼ ──────────────────────────────── インストール手順などの基礎知識から効果的なサイト運営方法まで ▼ 『Movable Type WEBデザインの新しいルール』 (荒木勇次郎著・松永英明著 )⇒ < http://tinyurl.com/23soaq > ──────────────────────────────── これからMTに挑戦しようという方はMT4対応の本をご覧下さい。 ちなみに私は上の本を読みました。 オールカラーで読みやすいです。 著者2人は、MTユーザーでその名を知らない人はいない有名人 です。 MT4、すでにパートが細分化されていて管理が楽そうでした。 ──────────────────────────────── アドセンスの「新しい広告管理」をしてみる ──────────────────────────────── PHPモジュール化のついでにアドセンスの「新しい広告管理」 もやってみました。 これを導入すると、アドセンスの管理画面上で広告デザインを 変更できるようになります。 変更すると、自動的に新しいデザインに変更されるのです! ちなみに、「変更が反映されるまで最大で約 10 分かかります」 とのこと。 ※実験の結果、5分ほどで反映されました。 ここまで管理が楽になると、どんなデザインがいいのかを調べる ための実験がしやすくなりますね。 で、早速トライ。 すでに据え付けてあるコードをインポートすることができます。 できあがった新しいコードをPHPモジュール化した部分に入れて 「保存と再構築」。 数秒後、すべてのページで新しいコードに書き換わりました。 う〜ん、ゼンゼン違う! さすがPHPモジュール化♪ ──────────────────────────────── 「PHPモジュール化」できたのはこの本のおかげ♪ ▼ 『AjaxとPHPによる MovableType高速&最強システム構築法』 (藤本壱著・技術評論社)⇒ < http://tinyurl.com/yscfdo > ──────────────────────────────── 上記の本にはPHPモジュール化のさらに上をいく方法が記載され ていますが、私には理解できませんでした。 でも、4章(PHPモジュール)だけで充分元はとれました。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ エイジのつぶやき ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (^_^σ:M-1グランプリ、サンドウィッチマンが敗者復活からの 劇的な優勝! いやァ〜、笑わせていただきました。 2008年のバラエティは楽しみです。 ▼ [ケータイ小説] 可及的速やかにフリーターは < http://no-ichigo.jp/read/book/book_id/8587 > ┌────────────────────────────────── │■金策冒険家エイジの億万長者への路 │■発行責任者 : エイジ │■発行者HP : < http://seikou.info/ > │■金策冒険家エイジのblog:< http://kinsaku.jugem.cc/ > │ Copyright(c)2001-2007 Kinsakuboukenka Eiji All Rights Reserved. └┰───────────────────────────────── ┃■登録/解除の方法 □下記URLをクリックしてください ┃ 【 まぐまぐ 】: < http://www.mag2.com/m/0000068341.htm > ┃ 【めろんぱん】: < http://tinyurl.com/6nwn > ┌┸───────────────────────────────── │■免責事項 │当メルマガの内容に従って読者が何らかの被害・トラブルに巻き込まれた │としても当方は一切関知しません。すべて自己責任でお願いいたします。 └┰───────────────────────────────── ┃■転送自由 □無断引用不可 ┃当メールマガジンは転送自由です。 ┌┸───────────────────────────────── │■掲載許可 │皆さまからのメールをメルマガ(サイト)に掲載するときは事前に許可を │いただいておりますが、まれに事前の告知なく掲載させていただく場合が │あります。そのときは、どうかご了承くださいませ。 └──────────────────────────────────


