HOME > MT

Webサーバーでもメールサーバーでも、基本的にサーバーというものは自宅サーバーで運用するものという認識でいたこの数年間ですが、ここに来てその認識が変わってきました。

というのも、専用でも格安共用でも、とにかくレンサバの機能と容量がアップして、同時に価格が安くなってきたということが背景にあります。

そもそも、なぜ私がサーバーは自分で立てるようになったかといえば、ひとえにレンサバが高額で少容量だったからという理由があります。この前提が最近は急激に崩れてきているんですね。

とゆーわけで、近々、我が家の建て替えという大イベントも控えていることですし、いっそのことレンサバに移行してみるかということで選んだのがさくらのレンタルサーバー。安いんですよねえ、これがまた。とくに、私のように複数ドメインを所有しているユーザーにはとてもありがたい存在。

で、ここにMT4.1を入れてみたのはいいのですが、やっぱり以前のようにPHP化してみたいなあという欲望がむくむくと頭をもたげてきまして。

PHP化の手順そのものは、本来であればきわめて簡単。

  1. MTの管理画面から「設定」>「ブログの設定」>「公開設定」を選び、アーカイブの拡張子をphpにする
  2. 同じく管理画面の「デザイン」>「テンプレート」>「インデックステンプレート」>「メインページ」を選び、出力ファイル名を「index.php」にする
とまあ、これだけですむはずなのです。

ところが、さくらでこれをやってもなぜかInternalServerErrorになってしまいます。
なんでだろうと思って調べてみると、どうやらパーミッションの問題のようです。

さくらのレンサバではPHPはCGIとして動作し、ファイルもディレクトリもパーミッションは755もしくは705である必要があるとのこと(一般的には755のようですね)。

試しにMTで生成されたindex.phpのパーミッションを755に変更してみると、確かにちゃんと表示されます。しかし、再構築の度にすべてのファイルを手動でパーミッション変更するわけにもいきません。

そのあたりの対応方法はMT側にもきちんと用意されていました。
環境変数リファレンスにも載っているのですが、

ひとつはcgiwrap下での実行に際してのパーミッション変更
http://www.movabletype.jp/cgi-bin/mt4/mt-search.cgi?search=cgiwrap&IncludeBlogs=10

もうひとつは、デフォルトパーミッションの設定
http://www.movabletype.jp/cgi-bin/mt4/mt-search.cgi?search=Perms&IncludeBlogs=10

ということになります。
具体的には、/mt/mt-config,cgi の最後あたりに
HTMLUmask 0022
DirUmask 0022
UploadUmask 0022
DBUmask 0022

HTMLPerms 0777
UploadPerms 0777

という項目を加えればOKです。
注意点としてはすでに作成されたディレクトリのパーミッションは変更されないということ。画像を保存したディレクトリなども該当しますから、ここは手動で変更するなりして対応しましょう。

あと、細かいところとしては、うまくPHP化ができたら既存のHTMLファイルは削除するとか、ディレクトリへのアクセスで表示するデフォルトページの最上位にindex.phpを持ってくるとか、そのへんも対応しておけば問題なくPHP化ができるはず。

今さらながらMT4.1を使い始めてみました。

MTもいい加減に飽きてきて一時閉鎖していたんですが、やっぱりちょこちょこいじってないとダメだなあということで、久しぶりに再開。

元々、他人様とのコミュニケーションが目的ではなく、あくまで自身のナレッジ蓄積ツールとしてMTを捉えているので、バージョンが4.1になっても絶対に必要な機能というのは自分なりにあります。

その第一が検索機能。
それもサクサクと動く高速な全文検索機能が必要。
「あー、そういえばアレについて昔、なんかまとめた覚えがあるよなあ」というようなときに、こうした検索機能が威力を発揮するのです。

まあ、Googleのサイト内検索機能を導入すればそれでいいじゃんという説もありますが、個人的にはMT3で使っていたAjaxによる超高速検索システム世界中の1%の人々へ版。元々は「暴想」で公開されたものですね)が気に入っていたので、せっかくだからそれを移植してみようかと。

基本的な設置方法は「今日のMovable Type:Ajaxを利用したMT用超高速検索システムはスゴすぎる!」で紹介されているとおりです。

ただし、MT4.1ではモジュール化がかなり進められているので、それにあわせてスマートに設置してみましょう。

1)必要なファイルのダウンロード
blog_ajax_search.zip
をダウンロードして展開します。含まれているファイルは以下の4つ。
  1. blog_ajax_json_search.js  検索用スクリプトのソース。必要に応じてカスタマイズ
  2. prototype.js   ライブラリのソース。いじる必要なし
  3. search_data.txt   XMLデータベース作成テンプレートのソース
  4. search_form.txt   検索フォームテンプレートのソース
2)jsファイルのアップロード
適当な場所でOKですが、ここではルートディレクトリの下に「js」というディレクトリを作成。
ここに、blog_ajax_json_search.jsとprototype.jsの2つのファイルをアップロードします。

3)blog_ajax_json_search.jsのカスタマイズ
これも好みや必要に応じておこないます。187行目あたりのハイライト色を指定するところは、もっとも必要にして簡単なカスタマイズでしょうか。

4)XMLデータベース自動生成用のテンプレートを作成する
MTメニューのデザイン>テンプレート>インデックステンプレートから「インデックステンプレートを作成」を実行。
タイトルには、適当に「Ajax検索データベース」とでもつけます。でもって、内容部分にsearch_data.txtの中身をコピーします。出力ファイル名には「search_data.txt」と指定。再構築オプションにチェックが入っていることも確認します。

5)検索ウィンドウのウィジェットを作成
検索フォームはどこに仕込んでもいいのですが、せっかくなのでウィジェット化して今後の使い勝手をよくしておきましょう。
MTメニューのデザイン>テンプレート>ウィジェットから「ウィジェットテンプレートを作成」を実行。タイトルには「Ajax検索フォーム」とでもつけて、内容部分にsearch_form.txtの中身をコピーします。
ウィジェットができたら、ウィジェットセットから追加します。

6)結果表示エリアの指定
最後に、検索結果を表示するエリアを指定する必要があります。
じつはMTがモジュール化されたことで、この部分がちょっとわかりにくくなっています。私がおすすめするスマートな(と思う)やり方は、次の通り。
  1. MTメニューのデザイン>テンプレート>テンプレートモジュールから「ヘッダー」を選び、最後の部分に「<div class="result">」と追加する
  2. 同じくテンプレートモジュールから「フッター」を選び、最初の部分に「</div>」と追加する
つまり、DIVタグの開始と終了が別々のテンプレートに記述されるようにするわけです。

これで、エントリーが追加されたり再構築されるたびにXMLデータベースも自動的に更新され、超高速な全文検索が行えるようになります。

MT4の投稿テスト

MT4をインストールしてみた。

とりあえず、動作は問題ない模様。

月別アーカイブ

Copyright(C) 2006-2008
CODE-R/R2.
All rights reserved.