自分の場合、MovableType移行当初からPHP化にしてますが、
PHP化への勧めとメリットについて数回に分けてエントリーしたいと思います。
まず、PHP化のメリットについて、色々なサイトさんでは
・各アーカイブのページ分割
・モジュール化によるリビルド(再構築)の高速化
この二点をよく見かけます。
ページ分割については、これは確かに MovableType のメリットです。
それから、リビルドの高速化については正直あまりかわりません。
話しがややこしくなるので説明を省きますが、たとえモジュール化(モジュールってのは「部品」って意味)にしても、
処理させないモジュールが少ないのが理由だと思います。
そしてもう一点。
これは次回エントリーしようと思っている各テンプレートのモジュール化の説明ですが、
自分がPHPを使うようになって思うことは、モジュール化したことにより管理面で非常に楽になったのと、
ソースがすっきりしたのが嬉しいです。
具体的に例を述べると、例えば、
ここんちの右側のサイドバーに「Affiliate」っていうコンテンツがありますが、当然これはモジュール化されてます。
カテゴリー・個別エントリー・日付アーカイブ~と他にも色々なテンプレートで同じ内容の
ソースを使用してますが、頻繁に更新するものにあたっては、拡張子「.php」で一枚のテンプレート
「affiliate.php」を作成し、
<? include("affiliate.php"); ?>
と、たった一行のインクルード文を各テンプレートに記述しておけば、そのテンプレートを修正する
だけで全てに反映され、更新されるというわけです。
そんなことから、ここんちは片っ端からモジュール化されてるブログ構造になってます。
※例があまり良くないので補足説明
メインページと自作したテンプレートに限ってのインクルード文は
<? include("hoge.php"); ?>
となりますが、カテゴリー・個別エントリー・日付アーカイブ等のインクルード文は
<$MTInclude file="hoge.php"$>
となります。
インクルード文の違いのみならまだしも、他に様々な不具合が出たので、
カテゴリー・個別エントリー・日付アーカイブ等のアーカイブ類はわざとモジュール化してません。
確か何処かで説明されてたと思いますが、多分これはMTの仕様だったと思います?
話しが反れましたし、ぐだぐだうんちく垂れててもしょうがないのでPHP化導入について
以下、MT3.1x・小枠テンプレート・☆さくらインターネット☆
の構成で備忘録。
【参考サイト】
Luna's*PaPaさん::MovableTypeのPHP化(その1)
Luna's*PaPaさん::MovableTypeのPHP化(その2)
CROSSBREEDさん::MTのPHP化とページ分割
Luna Squareさん::出力ファイルのパーミッション変更
kankichi@blog:SAKURA editionさん::MT/カテゴリーのページ分割~php化~
小枠空間さん::PHPモジュール化の仕組みについて
尚、今回のエントリーを含め今後
::MovableTypeのPHP化導入【ページ分割化導入編】
::MovableTypeのPHP化導入【モジュール化導入編】
と、三回に分けて説明していきたいと思います。


今回PHP化導入について行う作業は大きく分けて3つ。
拡張子を「.html」→「.php」にかえて、後はそれにちなんだ設定を数箇所行うだけです。
ただし、500エラーはレンタルサーバーやテンプレート、パーミッションに依存しますので気をつけて下さい。
ほとんどの場合パーミッションの設定が原因だと思ってもらって良いと思います。
1.メインページ(トップページ)のPHP化
管理メニュー左の「テンプレート」→「インデックス・テンプレート」の「メインページ」をクリック。
出力ファイル名を「index.html」→「index.php」に変更→再構築
※再構築した時点で「index.php」が生成されます。
次に FTP で「index.html」を削除し、「index.php」のパーミッションを755に変更して終了。
この作業のみでメインはPHP化されてます。
2.各アーカイブのPHP化
各アーカイブの設定は、アーカイブファイル名を変更します。
管理メニュー左の「ウェブログの設定」→「設定タブ」で「アーカイブの設定」の
「アーカイブ・ファイルの拡張子」のテキストボックス欄を「.html」→「.php」に変更。
管理メニュー左の「ウェブログの設定」→「アーカイブの設定タブ」で
「アーカイブ」の「アーカイブ・ファイルのテンプレート」に下記のように記述。
個別エントリーアーカイブ
<$MTArchiveDate format="%Y/%m/%d_%H%M%S"$>.php
日付アーカイブ(月別)
<$MTArchiveDate format="%Y_%m"$>.php
カテゴリー・アーカイブ
cat_<$MTArchiveCategory dirify="1"$>.php
※各アーカイブってのはカテゴリー・個別エントリー・日付アーカイブのこと。
また、アーカイブファイル名の詳しい説明についてはCROSSBREEDさん::MTのPHP化とページ分割を参考にしてみて下さい。
この作業で各アーカイブのPHP化も導入されたわけですが、このままでは
各アーカイブにアクセスした時に500エラーが出ます。
この500エラーは、各アーカイブのパーミッションが変更さてないのと、
たとえ変更したとしても、再構築するたびにパーミッションが666に戻ってしまうのが原因です。
勿論、手動で毎回パーミッションをかえるという手段もありますが、それを回避する為に、
3.出力ファイルのパーミッション変更
をします。
mt.cfg の172行目と193行目の「#」コメントを外し、パーミッションに実行権限
「755」を持たせます。
※詳細についてはLuna Squareさん::出力ファイルのパーミッション変更を参照してみて下さい。
# DBUmask 0022
# HTMLUmask 0022
# UploadUmask 0022
# DirUmask 0022
:
:
# HTMLPerms 0777
# UploadPerms 0777
↓
# DBUmask 0022
HTMLUmask 0022
# UploadUmask 0022
DirUmask 0022
:
:
HTMLPerms 0777
# UploadPerms 0777
このように青字の行の#を消すだけです。
最後に注意点をひとつ…
※☆さくらインターネット☆
の場合、個別アーカイブ(コメントを書く場所)で500エラーが出るようでしたら archives フォルダの中の2005フォルダや「.php」ファイル。archives >> 2005フォルダの中の10や11と書かれてるフォルダのパーミッションを「777」から「755」へ変更してみて下さい。
ひとことで言うと、archives フォルダの中に入ってるフォルダと「.php」ファイルを全て755にしてみて下さいと言うことです。
尚、PHP化の記事については、Luna's*PaPaさん::MovableTypeのPHP化(その1)が簡単にまとめられてますのでそちらを参照してみて下さい。
また、PHP化の説明については、小枠空間さん::PHPモジュール化の仕組みについてを参考にしてみて下さい。
これでPHP化導入作業は完了です。
【05/11/13追記】
え~と、ひとつ言い忘れてました…
拡張子を「.html」から「.php」に変更することで、サーチエンジンで検索すると「404エラー」
が出るらしいです。
それを回避するために「.htaccess」を使います。
具体的な記述内容に関しましては、CROSSBREEDさん::MTのPHP化とページ分割を参考にしてみて下さい。
【20061028追記】
MT3.2以降のアーカイブ・マッピング設定ラシイ…
※にゃんだばブログについては、下記の設定でケテイ!!!
●エントリー・アーカイブ(「エントリー」行)
<$MTArchiveDate format="%Y/%m/%d_%H%M%S"$>.php
●日付アーカイブ(「日別」行」
%y/%m/%d/index.php
※MTタグ削除
●日付アーカイブ(「月別」行)
%y/%m/index.php
●カテゴリー・アーカイブ(「カテゴリー」行)
cat_<$MTCategoryID$>.php
≪ 続きを隠す