データベースの変更とPHP化
このサイトはMovableTypeで構築されていますが、どうも最近記事やコメントを書いても「internal sever error」とエラー表示が出たり、再構築の時もいきなりログイン画面に戻ったりして失敗したりすることが多くなってきました。特に夜が・・・。
2,3ヶ月前に、僕のwebの師匠とも言うべきAshizawa氏に尋ねたところ、使っている「ロリポップ!」サーバーではデータベースMySQLは重い、SQLiteに移行してはとの回答。
ただ、移行方法とかあんまりわからない僕はAshizawa氏が忙しくて付き合う暇がないということでそのまま放置していたのです。ところが先週、コメントを2度送信してもエラー表示がでるとの苦情・・・なんとかせねば。
そう思った矢先、Ashizawa氏のwebサイトでMySQLからSQLiteに移行したとの記事が。これはもうやるしかない!
移行方法は、http://www.odysseygate.com/さんのSQLite移行のエントリーを参考にしました。mt-db-convert.cgiを使ってのSQLite移行方法です。具体的な移行方法はリンク先を参照していただければと思います(僕はほとんど書いてあるとおりにしただけなので・・・)
早速移行してみましたが、エラーがでない!再構築が早い!と、今のところいいことずくしです。これで苦情もなくなるはずだ〜。
その後、ついでなので、ブログのPHP化も実行することに。PHP化とは何かってのもまだよくわからない僕ですが、今よりさらに色々なことができそうという漠然とした意識から決意。何でもやってみるもんだ、きっと。
方法としては、indexテンプレートの拡張子を「html」⇒「php」に。また「設定」⇒「公開」からアーカイブファイルの拡張子を「html」⇒「php」に。
また、今まで統一性がなかったpermalink(エントリー固有のアドレス。僕の場合、だいたい最後の部分が「post_○○.html」となっていますが、たまに「ver.html」とか「oogle.html」とかあったりして気持ち悪いなあと思っていました)をエントリーの投稿日時に固定化させました。エントリーアーカイブの出力フォーマットを「%y/%m/d-%h%n%s.php」と指定します。
この後、再構築して拡張子が「.html」のいらないファイルを削除すればできあがり。これだけなら僕でも思いつくくらい簡単です。
問題はgoogle等の検索からサイトを訪問した人への対処です。変更後のアドレスが検索サイトへ反映されるまではしばらく時間がかかります。ということは、検索から訪問した場合、旧ファイルがないので、エラー表示となり大変失礼なことに。「.html」ファイルから「.php」ファイルへ自動的に飛ばす方法が必要です。
ここから先は手に負えないのでブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニックを参考に。
技術的には「.htaccess」を利用してリダイレクトさせるのですが、「○○.html(旧ファイル)」⇒「○○.php(新ファイル)」のコードをページの分だけ記述しないといけません。作りたてのサイトならまだしも、これでも80を超えるエントリーをもつサイトですので、そんな無駄な作業をしたくありません。そこはちゃんとフォローが。プラグインを使うことで自動的に「.htaccess」に上記作業を記述してくれるのです。早速作業開始(工程としては、先の拡張子の変更前に「.htaccess」の元を作成します。)
作業後、再構築。さて旧アドレスを叩いてみると・・・エラー。orz
記述がおかしかったのか再度行うも・・・エラー。orz
「php」ファイルにはアクセスできるのですが、「html」ファイルから飛びません。なぜなんだ。。。
「.htaccess」を覗いてみて納得。順番を間違えたのか、プラグインで生成された「.htaccess」のコードがおかしくなってました。
どうおかしかったというと「○○.php」⇒「○○.php」
そうです。無限ループです。どこにも「○○.html」⇒「○○.php」が見当たりません。結局手作業で埋めることに。。。
開始から数時間でようやく完成。ほとんど全て他人頼りでしたが、少しはテクニックについて理解できた(はず)
⇒ HIROSHI (01/03)
⇒ bill collector (12/21)
⇒ HIROSHI (12/11)
⇒ bill collector (12/08)
⇒ HIROSHI (11/12)
⇒ HIROSHI (11/09)
⇒ bill collector (11/08)
⇒ 通りすがり (10/28)
⇒ HIROSHI (10/19)
⇒ Bill collector (10/13)