MySQL移行に成功、いよいよPHP化
MTが復活したところで、再びMySQLへのデータベース移行を試みた。
今度はサブカテゴリがない状態(親カテゴリのみ)にしておき、一回インポートした記事も削除してテストエントリーを3本ほど残した状態で作業した。
ロリポップの手順通りデータベースを作り、mt.cfgとmt-db-pass.cgiを書き換え、転送。そしてmt-db2sql.cgiにアクセス。待つこと数秒・・・
Done copying data from Berkley DB to your SQL database!
というメッセージが出た。成功したらしい。やった!・・・長い道のりだった。
いやいや、これで終わったわけではない。次はダイナミックパブリッシングの導入だ。
ロリポップの「MovableType3.1のダイナミックPHPページ生成を使用する場合」の手順に従い、以下の作業をする。
- ブログのディレクトリにtemplates_cフォルダを作る
- MTにログインして、「再構築オプション」で「アーカイブのみダイナミック」を選択、保存
- インデックス・テンプレート一覧の「ダイナミック・テンプレート用起動スクリプト」を選択、保存
これだけである。あっけない。ちなみに.htaccessは自動生成されるので、特に作る必要はなかった。
さて、試しにテスト記事を投稿してみると、処理にかかる時間が劇的に短くなっていた。まあ、記事をほとんど削除したのでデータ量が少ないということもあるだろうけど、それにしても早い。この後も、テンプレートを変更して再構築するたびに処理の早さを実感した。ちょっと感動。
ちなみに、最初のテスト投稿のときは拡張子が「html」のままだったんだけど、今後のことを考えて「php」に変更した。
ところで、この際だから個別記事やカテゴリページのファイル名をコントロールできるように細工しておくことにした。
MovableTypeは、デフォルトのままだと自動採番でファイル名が付くようになっている(エントリーに英字が使われていればその英字があてられる)。でもそれだと、サーバを引越しするときやMTが壊れて復旧するなんていうときに、データのインポート・エクスポートをするとファイル名が変わってしまう可能性があるそうだ。
なので、それを避けるために固有のファイル名を付けておこうというわけだ。
方法は、次の2つ。
- エントリー名に「キーワード」を使用する
- 「アーカイブファイルのテンプレート」に、命名ルール(投稿した年月日時をファイル名にする)を記述する
最初はキーワードを使おうと思っていたけど、ココログから持ってくる投稿済みの記事にまでキーワードを付けるのは面倒くさいし、規則性があればいいわけなので、日付形式でいくことにした。
【参考】
MTのPHP化とページ分割(CROSSBREED クロスブリード!)
アーカイブのURLが変わらないように(風のまにまに号)
上の2つの記事を参考に、命名ルールを次のようにした。
個別記事
.php
月別アーカイブ
_index.php
カテゴリアーカイブ
.php
これをMTの管理画面で「アーカイブファイルのテンプレート」に記述して再構築すると、次のようなファイル名に変わった。
個別記事
/2005/07261230.php
月別アーカイブ
/2005/07_index.php
カテゴリアーカイブ
information.php(informationカテゴリのアーカイブ)
ちなみに、カテゴリ別アーカイブページの名前を自分で指定したファイル名にするために、CategoryLabel(カテゴリ名)を英語にして、CategoryDescription(カテゴリの説明)のほうを日本語にするという手を使った。「新選組!関連」だと「sinsengumi」という風に。
【参考】
MTのカテゴリ名を日本語にする方法(CROSSBREED クロスブリード!)
これに伴い、サイドメニューに表示する「カテゴリ」リストの呼び出し文もとなっている箇所をに変更した。
さて。ここまでの作業は、特にPHP化しなくたってできることばかりだ。
そもそもサイドメニューなどの共通部分をインクルードしたくてPHP化することにしたのだ。ここからがカスタマイズの本題なのである。続きはまた今度。