2005年02月24日
サイトを移転するときは・・・・
[ カテゴリ : memo - MovableType ]index.html に移転しましたって書くだけでなく、 index.rdf や index.xml も残しておけらしい。
そっちを見る人もいるってことで。
俺もか。
投稿者 JK : 05:14
2005年02月17日
コメントスパム対策とそのエラーラッシュ対策
[ カテゴリ : memo - MovableType ]こちらのコメントスパム対策(その3)を使用させて頂いている。
非常に重宝しているのだが、my $sc_tx = param('text'); という記述があって、param('text') が uninitialized のとき(つまり、コメント投稿する内容がないとき、「さぁこれからコメントするか」ってときを含む)、httpd のログにエラーが下記のようにずらずらと並ぶ。
Use of uninitialized value in pattern match (m//) at (中略)/Jcode.pm line XXX.
Use of uninitialized value in pattern match (m//) at (中略)/Jcode.pm line XXX.
Use of uninitialized value in substitution (s///) at (中略)/Jcode.pm line XXX.
Use of uninitialized value in pattern match (m//) at (中略)/mt-comments.cgi line XX.
Use of uninitialized value in string ne at (中略)/mt-comments.cgi line XX.
これではエラーログが見づらくて嬉しくないので、ちょっと改造している。
具体的には、
1:Jcode::convert の行の1行前に
if ( $sc_tx ) {
と入れる。
2: die の次の行に } を入れる。
まぁ、要するに $sc_tx が空や未定義や未初期化の場合は convert とかすんなって仕様。
ちょっとだけ速いはずだ。
・・・でも、なんでこれでいいんだろう。わかんないけど、我が家ではこれでうまくいってる。
代入文 my $sc_tx = param('text'); をやっても uninitialized って出るってすげー気にいらない仕様ではあるよね。謎だらけ。
2005年02月09日
携帯から Movable Type に投稿する(写真付き)
[ カテゴリ : memo - MovableType ]Vine3.1 かなんかで postfix が動いていてメールが届くサーバで、しかも postfix の設定をいじれるようなところで MovableType を動かしていることを前提にする。
・・・門狭すぎ?(笑)
でも、そうでもなければ、よそに投稿用メールアカウントを作って、どうにかして定期的に fetchmail して post2blog に投げ込むとかやる必要があるが、そこまでやるなら違う方法もぐぐればあるってもんよ。
1. post2blog の入手と設置
http://minken.net/mt/archives/000064.html
から、 post2blog を持ってきて、「http で参照できないどこか」に置く。
permission は 700 つーか、postfix から実行できる感じで。
必要って書いてある perl modules は入れておくように。
足りなければ、メール差出人宛に「~.pm がみっかんねーよ」とかエラーメールが来たりするので、やってみるのもいいかも(ぉぃ)
2. post2blog の編集。パチ当て。
$url , $blog_id, $username, $password, $MT_DIR, $parse_path を設定する。
$username は文字コード注意。うちの場合は、日本語を utf-8 で処理しているから、$username も(というかファイル全体が)utf-8 に。MT 使ってるってことは utf-8 または euc なので安心(謎)
$password は生指定なので、http で参照できない場所に post2blog は置くのがよい。
$MT_DIR は MovableType の mt.cgi なんかがある場所。
$parse_path は実在する chmod 777 してあるディレクトリを指定。
$blog_id は mt4i.cgi のときと同じ。
au 携帯で GPS 情報つけまくりだぜ!って人は下記修正をしておくのがいいと思う。(一応、作者様謹製~)
★修正前
my $map = "http://www.at-navi.com/map/checkMap.jsp?lat=$lat&lon=$lon&unit=0&datum=0&sc=0";
★修正後
my $datum = 0;
$datum = 1 if ($info->{GPSMapDatum} eq 'TOKYO');
my $map = "http://www.at-navi.com/map/checkMap.jsp?lat=$lat&lon=$lon&unit=0&datum=$datum&sc=0";
なお、patch だと post2blog.patchてな具合。patch と post2blog 同じ場所に置いておいて
$ patch -p0 < post2blog.patch
とかやってくださいな。まぁ、手で直した方が楽じゃねーかとも思うが。
3.メールが届いたら post2blog に渡るように設定。
3-1. postfix から、スクリプトを実行できるようにするために、main.cf を編集。
Vine 3.1 なら /etc/postfix/main.cf を編集して
allow_mail_to_commands = alias
みたいな1行を入れる。
3-2. post2blog にへちこむ設定
そのサーバ(メールサーバ)で受け取るドメインが hoge-domain.com で、
投稿用アドレスを hogeposting@hoge-domain.com とする場合。
postfix の aliases ファイル(Vine なら /etc/postfix/aliases 。あるいは /etc/aliases でも一緒)に1行書き足す。
hogeposting: "|/somewhere/somedirectory/post2blog"
上記編集が終わったら
# newaliases
とやる。
なお「どこに hoge-domain.com って書いてあるのさ!」って人は /etc/postfix/main.cf あたりをぐれぷってください。というか、そんなこと言う人が postfix の設定いじってていいのかと。ちゃんと不正リレー対策とかできてんのかと。
3-3. postfix 再起動
Vine であれば、
# service postfix restart
とかやって main.cf / aliases の設定を有効にする。
以上、、、、だと思う。
投稿者 JK : 16:20
MovableType なサイトを 携帯で見られるようにする
[ カテゴリ : memo - MovableType ]Step 1
http://www.hazama.nu/t2o2/mt4i.shtml
から、 mt4i.lzh を取ってくる。
$ wget http://www.hazama.nu/t2o2/archives/mt4i/mt4i181.lzh
Step2.
lha で解凍して MT 設置ディレクトリに置く。
$ lha x mt4i181.lzh
なお、Vine 3.1 なら、lha 入ってない場合は # apt-get install lha で入れる。
Step3.
blog_id を編集する。上のサイトに書いてある通りだが。
以上。結果はこんな感じで。
投稿者 JK : 08:47
MovableType が送ってくるメールの題名の日本語が化けるのを直す
[ カテゴリ : memo - MovableType ]lib/MT/Mail.pm の
if ($mgr->DefaultLanguage eq 'ja') {
ではじまる if ブロックを、常に実行されるようにする。
つまり、上記 if 行と閉じ} の行をコメントアウト(行頭に #)する。
これで、つねに日本語 subject を想定した変換をしてメールしてくれる。
・・・・つーかバグじゃん・・・・・