長く長く長くかかりましたが、ようやくPHP化に成功!!!
はぁぁぁぁーーー。つかれた…。苦労しました、ほんと。
元々、PHP化したかったのは、htmlだとトップページに表示される記事数が決まっていて、yaplogのように、トップページから「前へ」のリンクがなく、記事が分割できなかったからです。左メニューから最新のエントリーを選べば、その月の以前の記事もみられるんですが、1記事しか見られないし、不便だなぁと思っていて、PHP化をすれば、「MTpagenate」というプラグインを使って、ページ分割が出来ると知り、どうしてもPHP化にしかったのですが…
以前試行錯誤をした結果、どうしても出来ませんでした。ページ分割どころか、PHP化さえうまくいかず、諦めてしまいました。その後、このページ分割はPHP4.1以下では正常に動作しないことを知り、まさかと思って私が借りているレンタルサーバーに問い合わせると…バージョンはPHP4.0…。
一気にやる気が失せました。
ただ…
基本的には4.0.6になりますが4.2.3のサーバーもございます。4.0.6以上を希望される場合はお問合せフォームよりご連絡下さい。
とあって、一度問い合わせたんですが、
PHPにつきまして現在、弊社にてバージョンアップサーバーの準備を行っております。ご用意でき次第ご連絡をさせて頂きたいと思います。
とあって、ずっと待っていたんですが連絡は全くきませんでした。私も諦めていたんですが、最近カテゴリ数が増え、エントリーも増えたため再構築におそろしく時間がかかるようになり、さらに500 errorで再構築が途中でとまるという致命的なエラーにはまりだしたため、php化&ページ分割でかなり軽くなる、と知り、再度問い合わせてみました。
すると、今使っているサーバーのバージョンアップは出来ないけれど、PHP4.2.3のサーバーへ移動は可能だ、とのこと。ただし、移行作業はこちらでして、向こうでDNSの書き換え作業はしてくれるらしい。
もちろんします!というわけで、新しいサーバーへデータを移行させたのですが、いくつかのアーカイブのログがうまくダウンロード出来ず。どうも時間がファイル名になっているらしく、例えば「00:45 post_163.html」といった具合のものは、ダウンロードも名前の変更も出来ない。仕方がないのでそのフォルダに入っているファイルは諦めることに。未だに謎。
MTの移行については、それほど問題なくいけました。ただ、DNSの書き換え作業に24時間ほど掛かるとあって、待ってみたんですがそれ以上かかるので問い合わせてみると、向こうの手違いだったようでした。あと、なぜかメールが受け取れなかったんですが、これは、パスワードの設定が初期状態に戻っていたので管理者として再度設定し直さないといけなかったようです。(笑)
で、移行は無事になんとかすんで、さて、PHP化。
藤本壱氏の「ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック」を見ながらやってみたんですが、どうもうまくいかない。
何故だ、何故だと他のサイトを色々みていると、どうも、宣言の問題だったようです。
【PHP化する際の手順】
1.テンプレートの「メインページ」、index.htmlとなっている部分の「出力ファイル名」を「index.php」に変更する。その他、htmlテンプレートを新規作成しているなら、それらも全て「出力ファイル名」を「ファイル名.php」という拡張子に変更する。「アーカイブページ」の「archives.html」も「archives.php」に。私は、bookmark.html、link.html、profile.htmlを作っていたのでこれらの出力ファイル名も….phpにする。
2.「設定」から「公開」で、「アーカイブの拡張子」を「php」にする。※「 .」は要らないので注意。
3.アーカイブマッピングで、エントリーアーカイブ欄を「カスタマイズする」にして
%y/%m/%d-%h%n%s.php
と設定。こうすると、ファイル名が作成日時を基に作られるようになります。こうしたほうがいいらしい。
4. ここで私がひっかかった部分。テンプレートの1行目で「php」宣言をしないと、ファイルにアクセスしても白紙、あるいはエラーが出ます。
<?xml version=”1.0″ encoding=”<$MTPublishCharset$>”?>
こうなっているところを
<?php echo ‘<?xml version=”1.0″ encoding=”<$MTPublishCharset$>”?>’.”\n” ?>
に書き換えましょう。これは、他のテンプレートも全て同様に変更してください。index.phpはもちろん、php化したテンプレート、そして、アーカイブの「エントリーアーカイブ」カテゴリーアーカイブ」「日付アーカイブ」も全てです。お忘れ無く。
ここまでしたら、再構築を。
終了したら、まず、トップページにアクセスし、index.php でちゃんと表示されるかどうか試します。これできちんと表示されていたらphp化に成功、ということなので、index.htmlを削除しときましょう。じゃないと、http://あなたのドメイン名/ でアクセスしてきた時、index.htmlがあるとそちらが先に表示されてしまいます。これを削除しておくと、自動的に index.php が表示されます。
本来ならば、.htaccessによるリダイレクト設定をしたほうがいいのですが、ちょっとうまくいかないので、またそのうちします。
今のところ、こちらはまだ暫定版として公開していないので、リダイレクト設定をしなくてもまぁ、いいかなという気はしてます。ただ、移行作業でpingをとばしているので、検索でこられる方もいらっしゃるんで、ちゃんとしといたほうがいいとは思うのでやります。
とりあえずphp化が出来てほっとしました。
参考サイト
白梟 ‘s BLOG
●Movable Type 3.2 PHP化計画実行
小粋空間