« mail-entry_0.3.4、ドキドキしながらリリースです | メイン | つられてぱうフォント »

2004年02月13日

モジュールチェック用スクリプト

mail-entry.cgiの実行に必要なPerlモジュールが、サーバにインストールされているかどうか調べるスクリプトを作成しました。・・・というか、Movable Typeに同梱されているmt-check.cgiを書き換えただけです。これってパッチでもないし、配布すると問題あるのかな・・・
一応こちらに置いておきます。

ダウンロードしたら拡張子をcgiに書き換えて、エディタで先頭行のPerlのバスを自分のサーバの環境に合わせて変更してください。サーバにアップロードしたらアクセス権を700なり755なりにしてブラウザから実行してください。

MTの設置が出来た方なら簡単な作業だと思います。mail-entryを自力で設置しようと思いつく方にはこんなスクリプトが無くても平気かもしれませんが。私は欲しいので(笑)
無い可能性が高いのはMIME::Parserでしょうか。メール解析に必要なのですが。
cpanサイトからダウンロードして、中のファイルをMTのextlibディレクトリにコピーすれば使えるんじゃないかなぁとか思います。たしかコンパイルの必要はなかったと思いますけど・・・
サーバ管理者にインストールをお願いするのが一番確実です。

ところで、、、
mail-entry.cgiの92行目にあるuse MIME::WordDecoder;という行ですが、必要ないみたいです。MIME::WordDecoderが無くてエラーになって実行できない人がいたら大変申し訳ありません。先頭に#を付けてください。(コメントアウト)
ただし、次バージョンへのアップデートパッチを当てるときに正常に当てられない可能性もありますので、パッチを当てるときだけ#を消して元に戻してください。バッチを当てれば、もう気にする必要はなくなります。

投稿者 osho : 2004年02月13日 14:09

トラックバック

このエントリーのトラックバックURL:
http://www.mobile-bozu.com/mt/mt-tb.cgi/185

このリストは、次のエントリーを参照しています: モジュールチェック用スクリプト:

» ActivePerlのモジュールインストール from Kazulog
ActivePerlを利用しているが、色々なプラグインを導入するうえでPerlモジュールを追加しないといけない事が分かった。 インストール方法はいたって簡単♪ DOSプロンプトから ppm install モジュール名でインストールできる。 例えば、UPした画像をサムネイル表... [続きを読む]

トラックバック時刻: 2004年04月21日 11:39

» mail-entry.cgi に挫折 orz from 京ぽんでモブログ
 Movable Type に京ぽんで書き込みをしようと頑張っていましたが、普通... [続きを読む]

トラックバック時刻: 2005年03月13日 21:21

» メールで更新&自動投函 from tubuyaki.net
写メで、Movableが更新できれば最高なのに・・・。 携帯でネットにアクセスし... [続きを読む]

トラックバック時刻: 2005年08月28日 18:18

コメント

102行目ではなくて92行目では?

ちなみにこちらではやはりMIME::Parser付近でエラーが出ております。(泣)
ダウンロードして、レンタルサーバーにアップしたんですけどなぜか500エラーで…。(泣)

こうなったらやはりレンタル会社にお願いするしかないのでしょうか?
でもサーバーのレンタル会社でブログもレンタルしてますし…。

投稿者 userM : 2004年02月17日 05:53

userMさん、はじめまして。
あら、92行目でしたね。ご指摘ありがとうございます。しっかり確認したはずなのに・・・エディタの行数表示モードが変わってしまってました。

me-check.cgiで500エラーが出るんでしょうか。改造しながらどこかおかしくしちゃったかな。私のやることはけっこうミスが多いものですから(汗)

私がMIME::Parserを自力でインストールしたときは、http://search.cpan.org/~eryq/MIME-tools-5.411a/からダウンロードして、MIMEディレクトリを全部FTPして、アップしたディレクトリをmail-entry.cgiにuse lib "../../perl/lib/5.005/";などとして指定しました。mail-entry.cgiからの相対パスです。

でですね。MIME::Parser自体も他のモジュールを必要とするみたいです。readmeには、
File::Path
File::Spec
IPC::Open2 (optional)
IO::Scalar, ... from the IO-stringy distribution
MIME::Base64
MIME::QuotedPrint
Net::SMTP
Mail::Internet, ... from the MailTools distribution.
とあります。私はtelnetが使えたのでエラーを見ながら足りないものを一個ずつインストールしたんですけど・・・とりあえずレンタル会社にお願いしてみるが吉かもしれませんです。

投稿者 osho : 2004年02月17日 09:08

あ、me-check.cgiがちゃんと動いているのなら、33〜39行目のモジュール名のところを、上記モジュール名に書き換えて実行してみると、それらがあるかどうか分かると思います。後ろのコメントは必要ありません。コピーして行を増やしても問題ありません。

手動でインストールするときのご参考までに。

投稿者 osho : 2004年02月17日 09:13

MIME::Parser...
IO::Scalar, ... from the IO-stringy distribution
Mail::Internet, ... from the MailTools distribution.

上記の3つがインストールされていないと出てきますね。
確かにMIME::Parser...はFTPで放り込んだはずなんですけど…。
他の2つは確かに入れた記憶ございません。

これ以上はお手上げかも。ロリポに問い合わせてみるとします。
(いや…そもそもlolipopでやろうと思ったのがそもそもの間違いか?)

投稿者 userM : 2004年02月19日 03:53

me-check.cgiの26行目ぐらいに
use lib "../../perl/lib/5.005/";(ダブルコーテーションの中はMIME::Parserをコピーしたディレクトリ名)
としないとインストールしても反映されないです。(mt/extlib以下にコピーしたなら必要ないです。)
IO::ScalarとMail::InternetもParserと同じ要領でインストールできるのではと思います。あ、でも、断言は出来ないです。不安です。

ロリポップさんはけっこう要望に応えてくれるそうですので、問い合わせれば案外インストールしてくれちゃうかもしれませんね。そんなに負荷の高いモジュールではなさそうですし。

投稿者 osho : 2004年02月19日 11:38

とてもすばらしいスクリプトで感激です。
早速インストールして見ました。
動作はOKです。

もしよろしければ、index.cgiの中のindex.htmlを呼ぶ部分をphpでも出来れば…うれしいのですが。
sideをincludeで呼び出しているので、htmlのままだとphpで解析してもらえないのです。

print "Content-type: text/html\n\n";

ここらあたりを改造すれば行けると思ったんですが、
どうでしょうか。
改造ポイントを教えて頂けると助かります。

投稿者 hachitaro : 2004年03月15日 01:34

hachitaroさん、はじめまして。感激していただいてうれしいです。がんばって作った甲斐があるというもので・・・いや、まだ未完成です。修正が必要な部分を一月以上放置してますがそのうちVer0.3系列は手直しの必要がないようにします・・・

実はわたくし、PHPのことはさっぱりわかりません。「sideをincludeで呼び出している」というのもわかっていません。もちろんPerlも初心者なのです。いずれPHPも勉強したいとは思ってますが、すいません、今はお役に立てそうにありません。

print "Content-type: text/html\n\n";

この部分は、(たぶん)標準出力に以下の文字列はhtmlですよと宣言しています。ブラウザはこれを受け取って、このデータはhtmlなのだなと判断しているんだと思いましたけど。
・・・やっぱりどうしていいのかさっぱりです。

投稿者 osho : 2004年03月15日 15:58

わざわざありがとうございました。
色々書き換えたんですけど、ダメでした。
他のスクリプトみて自動リビルドを研究してみます。
いやー、でもこれ便利です。
ほんと助かります。

投稿者 hachitaro : 2004年03月16日 08:15

うちもロリポなので、問い合わせしてみましたが、parserとrubyは入れてもらえないそうです。
がーん。。。

じゃあ、モブログできないってことじゃん!

ロリポ、全然だめじゃん!

ってことで、しぼんで終わりました。でも、いいツールなので、何とかして使いたいです。。。

投稿者 もぶっち : 2004年04月26日 14:37

oshoさん初めまして。

私もlolipopユーザでして、mail-entryをなんとかして使おうと悪戦苦闘してた中の一人です。
結局動作はしなかったのですが、その悔しさをバネにlolipopでも動作する似たようなスクリプトを作成しました:-)

激遅レスかつ全然プアなスクリプトですが、もぶっちさんよろしければお使いになってみませんか?

http://unp.under.jp/ にて配布しております。

投稿者 yuasa : 2004年05月30日 01:13

yuasaさん、初めまして。
おー、すばらしいスクリプトじゃないですか。PerlじゃないからMTのモジュールを呼び出したり出来ないんですよね?それなのにすごいです。
テンプレートを使って、という考えは思いつかなかったです。なるほど、勉強になります。

なによりも説明書が分かりやすいですね。あー、自分とこの説明書を読み返すと、なんか、痛い(笑)
今新版公開のためのリリース文を書いてるんですが、ぜんぜん分かりやすくならずに困ってます。プログラムは出来てるのにリリース文が書けずに公開できないというジレンマ・・・

筆が遅いので時間がかかりそうですが、ご紹介のエントリーを書かせていただきますね。

投稿者 osho : 2004年05月31日 10:11

hachitaroさん、PHPで呼び出す方法ですが、リダイレクトでさせてはどうでしょう。
index.cgiの

print "Content-type: text/html\n\n";
print `cat $indexpage`;
exec ("./mail-entry.cgi > /dev/null");
}
else{
print "Content-type: text/html\n\n";
print exec("cat $indexpage");
}
の代わりに
exec ("./mail-entry.cgi > /dev/null");
print "Location: リダイレクトしたいURL\n\n";
else{
print "Location: リダイレクトしたいURL\n\n";
}
こう書きます。URLにindex.phpを入れればいいんじゃないでしょうか。

今公開準備中の新版でもPHPを呼び出すのにリダイレクトを使ってます。

って、ここに書いても気づいていただけないかも。サイトにコメントつけた方がいいでしょうかねぇ。

投稿者 osho : 2004年05月31日 10:17

あ、これだとブラウザのアドレス欄がindex.phpになってしまいますね。そこをブックマークされてしまうとindex.cgiが呼び出されない・・・

いっそindex.php内に、何分か間隔でmail-entryを呼び出すコードを入れるといいかも、です。それかindex.cgiを毎回呼び出すコードを入れて、index.cgiのコードを流用したほうが楽かな。その場合はprint云々は削ってしまっていいはずです。

もう何か対策済みであればいいのですけど、まだ考え中だったら、参考になればと思います。

投稿者 osho : 2004年05月31日 10:34

お褒め頂き恐縮です、が、まだ実装出来てない仕様が山積している状態でして X-<
そのうちまともに使用出来るレベルまで作り込めたらいいな・・・と。

投稿者 yuasa : 2004年06月01日 00:56

コメントしてください

サイン・インを確認しました、 さん。コメントしてください。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?