金策冒険家エイジのblog

私は、私のままで、成功していける。金策冒険家エイジの思考と実践の、不定型な日常。
本や家電、ゲームのレビュー、日常を題材とした小説、メルマガほか。
<< 2019年12月 >>   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

MT3.35でPHPモジュール化してみる

Friday, 28, 2007 at 16:26
[2007/12/27]
金策冒険家エイジの億万長者への路 vol.167
──────────────────── http://tinyurl.com/dtqf ──


  今年最後のメルマガです。

  Movable Typeというあまりにも有名なブログツール。
  とても便利ですが、不満がないわけではありません。

  中でも「再構築」という作業が思いの外ストレスです。
  そこで、できるだけ「再構築」しないで運営できるようにして
  みました。


━━【目次】━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 ◆ [本日のコンテンツ]
   ・MT3.35でPHPモジュール化してみる
   ・アドセンスの「新しい広告管理」をしてみる

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
JUGEMテーマ:インターネット
  【本日紹介する本】

 ────────────────────────────────
     「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モジュール)だけで充分元はとれました。


AjaxとPHPによる MovableType高速&最強システム構築法 Movable Type WEBデザインの新しいルール




━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ エイジのつぶやき
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


 (^_^σ: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 >
┌┸─────────────────────────────────
│■免責事項
│当メルマガの内容に従って読者が何らかの被害・トラブルに巻き込まれた
│としても当方は一切関知しません。すべて自己責任でお願いいたします。
└┰─────────────────────────────────
 ┃■転送自由           □無断引用不可
 ┃当メールマガジンは転送自由です。
┌┸─────────────────────────────────
│■掲載許可
│皆さまからのメールをメルマガ(サイト)に掲載するときは事前に許可を
│いただいておりますが、まれに事前の告知なく掲載させていただく場合が
│あります。そのときは、どうかご了承くださいませ。
└──────────────────────────────────
コメント
name:
email:
url:
comments:

トラックバック
trackback url:
常に心に留めておきたい詩
危険から守り給えと祈るのではなく、危険と勇敢に立ち向かえますように。

痛みが鎮まることを乞うのではなく、痛みに打ち克つ心を乞えますように。

人生という戦場で味方をさがすのではなく、自分自身の力を見いだせますように。

不安と恐れの下で救済を切望するのではなく、自由を勝ち取るために耐える心を願えますように。

成功の中にのみあなたの恵みを感じるような卑怯者ではなく、失意のときこそ、あなたの御手に握られていることに気づけますように。

(ラビンドラナート・タゴール「果物採集」より 石川拓治訳)


奇跡のリンゴ 「絶対不可能」を覆した農家 木村秋則の記録
(この本の中の一節です)
amazon.co.jp サーチ




with Ajax Amazon




ページトップへ