トップページ»3.5.ブログ/CMS»Movable Type 3.0D de moblog

3.5.ブログ/CMS



Movable Type 3.0D de moblog

前々から携帯電話からwebにコンテンツをアップロードする事には興味があったのだが、今回Movable Typeを導入したこともあり、目新しいことついでにこの仕組みも導入したいと思い立った。

今回導入したのはMobile-Bozuさんのmail-entry.cgiだ。 あひるさんという方が作成したmail2entry.cgiというCGIをMobile-BozuのOshoさんが改変を加え公開しているものである。

今回はこれをMovable Type 3.0Dにインストールした。 そのインストール作業内容について書いてみたい。

また正規表現プラグインを使い、送られた画像データだけをインデックスページに並べる方法についても書こうと思う。

尚、今回は全ての作業をFedora Core 2のシェル上で行った。 シェルで作業することが前提として書かれているので予めご了承頂きたい。




事前準備(1)

まず最初にあらかじめ必要なperlモジュールをインストールしておく必要がある。 必要なモジュールはNet::POP3、MIME::Parser、Image::Size、Jcode.pm(又はJcode.plでも良いようだ)、File::Copyとなっている。 イメージサイズの縮小にはMagick.pmも必要とのことだが、私は必要ではないと判断したので割愛する。

perlモジュールがインストールされているか調べる方法は

find `perl -e 'print join(" ", @INC)'` -type f -name "*.pm"|less

で一覧を表示後1つづつ検索すればいい。 lessじゃなくgrepでもいいだろう。

私の環境では、MIME::ParserとImage::Sizeがインストールされていなかった。 Fedora Core 2自体にrpmとして元々存在するのであればそれを使いたかったのだが、残念ながら見つけることができなかった。 そこでperlコマンドによりモジュールをインストールすることにする。

これを実行するには予め準備が必要になる。 設定方法は68user's pageさんのこの辺のページが詳しく解説して下さっているので参考にされたい。

準備ができたらモジュールのインストールを行おう。

perl -MCPAN -e 'install MIME::Parser'
perl -MCPAN -e 'install Image::Size'

他にもモジュールが足らない場合は同様の方法でインストールすればいいだろう。

事前準備(2)

続いてメールサーバーの設定を行う。 mail-entry.cgiはPOPプロトコルを使用してメールサーバーよりデータを受信する。 そのためmail-entry.cgi専用のメールアカウントを必要とするのだ。

メールサーバー側の作業になるため、各環境によって方法はまちまちになる。 今回はこの説明は割愛させて頂くが、単純にPOPで受信できるアカウントを用意していただけば良いだろう。 mail-entry.cgi専用であれば、プロバイダに用意してもらったアカウントでもOKだ。

事前準備(3)

事前準備の最後としてMovable Type側の設定を行う。 メールで受信したデータをエントリするカテゴリを作成しよう。

ちなみにmail-entry.cgiでエントリする内容は、普段手でエントリしているものとなんら変わりない。 したがって、既存のカテゴリにエントリすることも可能だ。 この場合、手で作成したエントリと混ざって表示されることになるだろう。

新規カテゴリを作成するかしないかは自分のニーズで選定すればいいだろう。

ダウンロード及びインストール

続いてダウンロード及びインストールについてだ。 配布ページに書いてあるとおりなのだが、私の環境は自宅サーバーなので若干方法が違っている事をご了承頂きたい。

cd /tmp
wget http://www.mobile-bozu.com/weblog/archives/file/mail-entry.zip
unzip mail-entry.zip
cd mail-entry
chown mtuser:mtgroup *.cgi
chmod 700 *.cgi

パーミッションについてだが、ウチの場合はSuExec環境であるし、また恐らくブラウザでのアクセスをトリガーとする気は最初からなかったので700とした。 不明な場合は755の方が無難だろう。

続いてmail-entry.cgiの編集だ。 まずいつものようにPerlパスを自分の環境にあったものに変更し、それ以外の項目についてもスクリプト内の説明に従って行えばOKだ。

編集が終わったらいよいよインストールする。 MTDIRの部分Movable Typeのインストールされたディレクトリだ。 環境に合わせて読み替えて頂きたい。

mkdir /MTDIR/moblogimages
cp /tmp/mail-entry/*.cgi /MTDIR/

これでインストールは完了だ。

動作確認

予め用意したPOPアカウントに対し、携帯電話でメールしてみよう。

現在の状態ではメールしただけではエントリされない。 メール後暫く時間をおいて(メールがサーバーに届くのを待つのだ)以下のコマンドをタイプしてみよう。

perl /MTDIR/mail-entry.cgi

正常に動作していればコマンド実行後mail-entry.cgiがHTMLを出力する。 エラーが出た場合はその内容を確認したり、エラーの箇所をエディタで確認するなどし、原因を修正して欲しい。

mail-entry.cgiが出力するHTMLは2通りある。 メールが届いていない場合と、届いている場合だ。 届いている場合はそのままエントリした結果を出力するようになっている。 今回はコマンドラインで直接起動したが、本来はブラウザから見れるように出力しているようだ。

登録した内容がHTMLで出力されたら、実際に先ほど用意したカテゴリに登録されているか確認してみよう。

登録されていれば動作的に問題なしと言うことになる。 あとはmail-entry.cgiをcronに登録すればOKだ。

crontab -e
i
*/30 * * * * mtuser /MTDIR/mail-entry.cgi 2>&1 1>/dev/null
[esc]
:wq

上の例ではcrontabで30分おきにメールチェックしエントリする設定になる。

余談だが、cron等で直接mail-entry.cgiを起動する方法を選んで、且つwebサーバーにapacheを利用している方は、.htaccessでブラウザからの不正アクセスを禁止しておいた方が安全だろう。 以下はその一例だ。

cd /MTDIR/
vi .htaccess
i
<Files ~ "(mail-entry|rebuild_index)\.cgi$">
<Limit GET POST>
deny from all
</Limit>
</Files>
[esc]
:wq

以上で基本的なインストール作業は終わりだ。 後はお好みに応じて自分の環境にあった変更を加えていくと良いだろう。

インデックスページに画像データだけを並べる

受け取った画像付きメールをそのまま普通のカテゴリとして見せるだけでも十分楽しいが、画像だけをインデックスページに一覧として表示できたらインパクト的に大きい。 サンプルはウチのトップページにあるLandscapesをごらん頂きたい。

今回は正規表現プラグインを使用してこれを実現してみた。 登録された画像付きエントリから画像のURLだけを正規表現で取り出すのだ。

まずは正規表現プラグインをインストールする。 今回はbradchoate.com中のRegex Pluginを利用した。

MT環境のプラグインのインストールは極めて簡単だ。 今回の正規表現プラグインも同様に、MTのpluginフォルダ及びextlibフォルダに2つファイルをコピーするだけで完了する。

cd /tmp
wget http://bradchoate.com/downloads/mtregex-1_61.zip
unzip mtregex-1_61.zip
mkdir /MTDIR/extlib/bradchoate
cp regex.pm /MTDIR/extlib/bradchoate
cp regex.pl /MTDIR/plugin/

以上でインストールは完了である。

では早速作業開始しよう。 Movable Typeにログインし、テンプレートからMainIndexの編集へと遷移して欲しい。

そして画像を載せたい部分を決める。 私はインデックスページの右のエリアにしたが、場所は別にどこでも構わない。 言ってみればインデックスページでなくても構わない。

場所を決めたら以下の文を挿入してみよう。

<MTRegexDefine name="p1">s|.*src=(.*)\ height.*|<img src=$1 width=48px height=58px border=0>|gi</MTRegexDefine>
<MTRegexDefine name="p2">s|.*p>||gi</MTRegexDefine>
<MTRegexDefine name="p3">s|.*br />||gi</MTRegexDefine>
<MTRegexDefine name="p4">s|\n||gi</MTRegexDefine>
<MTEntries category="Moblogのカテゴリ名" lastn="9">
<a href="<$MTEntryPermalink$>"><$MTEntryBody regex="1"></a>
</MTEntries>

これを挿入すると小さな画像が横並びに表示される。 またそれぞれの画像にはアンカータグにより個々のページにリンクされているだろう。

Moblogのカテゴリ名の部分は各自自分の環境に合わせて変更する必要がある。 上で決定したカテゴリの名前を入力すれば良い。 またその直後のlastnの数値だが、これは最新の画像をいくつ表示するか指定しているものだ。 ここでは最新9件の画像となる。

個々の画像サイズを変えたい場合は先頭のwidth及びheightを変更すればよい。

どちらにしてもこの方法でイメージのURLだけ取得できる。 あとはご自分の必要に応じて変更して頂きたい。

尚、今回の記事はいつも同様記憶を元に書いたものである。 従って間違っている箇所があるかもしれない。 不明点や誤植に気がつかれた方はコメントにて報告して頂けると大変助かる。

最後になるが、有用なスクリプト並びにプラグインを提供して下さっている各位に感謝の意を表したい。


投稿日 : 2004年7月17日

この記事に関する言及

このエントリーのトラックバックURL:
http://akionweb.com/mt-tb.cgi/26

コメント

このページに対する感想、意見をお寄せ下さい。




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

おことわり

当サイトに掲載している全ての情報は、全て当サイト管理者が個人的、実験的に試した事、又は独自に調査したものです。 従ってその情報に誤りがある可能性も多分にあります。 当サイトの情報をそのまま鵜呑みにされませんようお願い申し上げます。 また当サイトの情報を元に作業されたりする場合はそれをご理解頂いた上で、あくまで自己責任の元で行ってください。

トップページ»3.5.ブログ/CMS»Movable Type 3.0D de moblog