2007年02月19日
 ■ Linux ルータで UPnP

なんだか「玄箱 linuxigd」とか「debian linuxigd」で検索してここへ飛んでくる人が多いみたいなので、 過去ログを発掘して再構成してみる。
「Linux ルータ (玄箱、OpenBlockS) で UPnP を使う方法」。

1. パッケージの入手

DETROIT.DDO.JP さんが linuxigd の自作 .deb パッケージを作られているので、i386 なマシンならそのまま使わせてもらえばOK。

玄箱や OpenBlockS など、PowerPC のバイナリが必要ならば、 私の作ったバイナリ (PowerPC でビルドしなおしただけ) を置いておくので、これを使ってください。 apt-get 経由でウチのサーバからインストールするには、 以下の記述を /etc/apt/sources.list に追加すれば可能。

deb http://gema.luna2.org/mt/dist/debian ./
deb-src http://gema.luna2.org/mt/dist/debian ./

一応同一ディレクトリに hppa32 バイナリ も置いておきます (使う人なんているのかな…)。
HP B180L Workstation で動作確認済み。

2. 参考までに、バイナリパッケージのビルドメモ。

i. 玄箱上で、パッケージ作成に必要な基本パッケージをインストール。

kuro$ sudo apt-get install gcc dpkg-dev debhelper dpatch

ii. さらに、linuxigd のビルドに必要なパッケージをインストールする。

kuro$ sudo apt-get install libupnp-dev iptables-dev

iii. DETROIT.DDO.JP さんを sources.list に追加してソースパッケージをいただいてくる。

kuro$ sudo vi /etc/apt/sources.list
deb http://detroit.ddo.jp/debian/sarge ./
deb-src http://detroit.ddo.jp/debian/sarge ./
kuro$ sudo apt-get update
kuro$ apt-get source linuxigd

iv. ビルド

kuro$ cd linuxigd-0.99.cvs20041113
kuro$ fakeroot dpkg-buildpackage -uc -us -B

v. うちの場合は、出来上がったパッケージを OpenBlockS に移してインストール。

obs266# apt-get install libupnp0
obs266# dpkg -i linuxigd_0.99.cvs20041113-4_powerpc.deb

3. 使ってみる

とりあえずこれで MSN Messenger 7.5 はうまく動いてくれているみたい。 しかし、入力インターフェイスの定義がない iptables ルールが動的に生成されるため、 dst port とフォワード先のポートが万が一同じだと、ループが発生する。

動的に生成された iptables ルールの例:
-A PREROUTING -p tcp -m tcp --dport 2096 -j DNAT --to-destination 10.1.1.5:2096

こんな感じなので、クライアントから Internet 方向へ 2096 番で投げたら自分へ戻ってきてしまう。 MSN Messenger ではフォワードポートが同じになることは (ほぼ) 無いので良いのだけれども。

続きを読む "Linux ルータで UPnP"

2007年02月17日
 ■ Windows Mobile でコマンドプロンプト

W-ZERO3 [es] でコマンドラインを使えるようにしておくと、 それなりに使い道があるかもと思ってインストールしているわけだが。

参考: コマンドラインを利用する方法

この cmd.exe は Pocket CMD v 4.20 というバージョンで、 Windows NT 系に付いているもののサブセット的な位置づけになっている。 使えないコマンドが結構ある (sort, find, more, deltree など) のはいいとして、ワイルドカード文字が使えないのは結構致命的だ。

まあ、コマンドの逐次実行みたいな単純なことなら使えるので、入れておいても損は無い。 ただし、実行用メモリが空いているのにメモリ不足で実行できないことがままあるが、 この問題は RelocateLMDll を使うと解決できる。

バッチファイルも使えるように出来る。 拡張子 .bat、.cmd を cmd.exe に関連付けすれば良い。 ただし、実行されるときにオプション /C を付けるようにすること。 cmd.exe /C "%1" のようになっていればOK。

ファイルタイプ関連付けは GSFinder や Pocket の手で行えるが、 面倒くさければ以下のレジストリを取り込むことで関連付けが行える。
拡張子 .bat 用
拡張子 .cmd 用
レジストリの取り込みには TRE が必要であり、 拡張子 .reg をタップしただけで取り込むには、さらに .reg に対する関連付けが必要となる。 以下のレジストリを取り込むことで .reg を関連付け出来る。
拡張子 .reg を TRE に関連付けるレジストリ

2007年01月20日
 ■ W-ZERO3 用の動画を作る

土日きっちり休めるのは久しぶりの週末。 今日は、W-ZERO3 [es] で見られる動画を作るために、朝から試行錯誤してみた。

昔は PC 用に AviUtl で DivX エンコしていたのだけど、 最近は avi コンテナではなく mp4 やら mkv やらを使うのが良いらしい。 携帯用の動画にあまり手間をかける必要性も感じないので、 mp4 コンテナをいきなり吐ける「携帯動画変換君」を使うことにした。 設定さえきちんと決まれば、ドラッグアンドドロップで次々に変換できて、楽なことこの上ない。

今日試してみたのは、ビデオコーデック: XviD、オーディオコーデック: AAC(LC) である。 他のコーデックだともっと他にやりようがあるだろうと思うが、未確認。 また、W-ZERO3 [es] 側のプレーヤは TCPMP を使用する。

まずは 携帯動画変換君 を用意して、母艦 PC にインストール。 W-ZERO3 用設定ファイル をダウンロードして、これをベースに自分なりにカスタマイズする。

気付いたこと:

W-ZERO3 [es] のハードウェア側の制限が色々ある。 フレームレート 29.97fps でそのままファイルを作成してもフルに再生できない。 15fps がちょうど良いが、滑らかにパンするカットでカクカクした動作になってしまう。 これは 29.97fps のままでも起こるので、 あきらめて 15fps にして、フレームあたりのビットレートを上げることにする。

一方、PC で再生するとブロックノイズが目立つファイルでも、 W-ZERO3 [es] の液晶画面ではそこまで確認できないので、 ビットレート低すぎでガタガタのファイルでも結構見られる。

涼宮ハルヒのアニメOPをソースサンプルとして色々試してみた。 フレームレートは先述の通り 15fps。 1-pass だと、結構高ビットレートでないと辛く (1024kbps 以上必須)、 サビの動きが激しい所がぐちゃぐちゃになってしまう。 2-pass エンコードするとかなりの画質向上が見られ、 2-pass 768kbps ならば PC での鑑賞にも堪えられるくらいだ。 2-pass 512kbps でも、 W-ZERO3 の液晶画面では殆どノイズが確認できないので許容範囲だろう。

CBR (-b オプション) なのに、 2-pass にすると画質向上する仕組みが最初は理解できなかったのだが、 実際にはビットレート固定ではなく、全体で -b 数値の指定くらいになるよう調整しながら VBR エンコしているらしい。 携帯動画変換君の GUI 上でも q= の値が動的に変化していることがわかる。

quality base 量子化固定の -qscale オプションを使うと、q=6→2→6→6→2 のように変動する (-qscale 6 の場合)。 実は -b 指定の方が q=7→6→5→2→4 のように細かく変動するので、 同一サイズなら CBR 指定の方が微妙に画質が良い (ような気がする)。 -qscale 6 と -b 512 がほぼ同じサイズになるが、-b 512 の方が良さそうだ。

オーディオストリームの方は、サンプリングレート 48KHz や 44.1KHz が W-ZERO3 側のハードウェア制限でダウンサンプリングされてしまうらしい。 22KHz で 128kbit/s、一応ヘッドフォンで聴くからステレオにする。

-b 512、-ab 64 (ステレオだから実際は 128kbit/s) くらいにしておくと、 計算上 (24分 = 1440s) * (512 + 128) = 921600bits = 約 115MB くらいのファイルになる。 実際作ってみると 120MB くらいになってしまうが、 それでも 1GB の miniSD に30分アニメが8本ぴったり入る。 これくらいがちょうど良いかな。

結局、今日作成した .ini ファイルのコマンドラインは以下の通り。

Title=XviD/640x360/15fps/512kb/AAC/24kHz/128kb/stereo
TitleE=XviD/640x360/15fps/512kb/AAC/24kHz/128kb/stereo
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "<%Title%>" -t
imestamp "<%TimeStamp%>" -f psp -bitexact -vcodec xvid -cropleft 4 -cropright 4 
-s 640x360 -r 14.985 -b 512 -deinterlace -pass 1 -passlogfile "<%TemporaryFile%>
" "<%TemporaryFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "<%Title%>" -t
imestamp "<%TimeStamp%>" -f psp -bitexact -vcodec xvid -cropleft 4 -cropright 4 
-s 640x360 -r 14.985 -b 512 -deinterlace -pass 2 -passlogfile "<%TemporaryFile%>
" -acodec aac -ac 2 -ar 22050 -ab 64 "<%OutputFile%>.MP4""
Command2="rm "<%TemporaryFile%>-0.log""
Command3="rm "<%TemporaryFile%>.MP4""

表示上折り返しているが、もちろん Commmand 行はそれぞれ実際には1行である。 OutputPath にゴミファイルが生成されるが、ファイル名がランダムなのでうまく消せない。

-cropleft と -cropright オプションはソースによって微調整の必要あり。 また、-deinterlace オプションはソースがインタレース画像の時のみ必要。 また、16:9 前提なので、ソースが 4:3 ならそのまま 640x480 にするか、 上下に黒帯があるなら -croptop / -cropbottom オプションで削る。

参考リンク:
http://revivalgate.net/rnote.php?u=pc/mobile/2005-12-28a.html
http://hiromasa.zone.ne.jp/blog/archives/260/
http://www4.pf-x.net/~osusume/Transcoding.ini

2007年01月15日
 ■ 秋葉原の思い出(2)

秋葉原の思い出その2。

前回の時点では、 電気街口からのかつての巡回ルートに沿って思い出話を書こうと思ってたのだけど、 急に気が変わったので、今日は中央通りの末広町寄りについて書いてみる。

続きを読む "秋葉原の思い出(2)"

2007年01月12日
 ■ PPTP on Windows Mobile 5

Movable Type のテンプレートとスタイルシートの変更で、見た目を変えてみた。 元ネタは Movable Type入門からひっぱってきたものだ。 しばらくはこれで行ってみよう。

W-ZERO3 [es] の PPTP、つながらん原因がわかりましたわ。 これ、MPPE に全く対応して無いっぽい。 Google で探すと MPPE-40bit なら OK みたいな記事が見つかるのだけれど、 PPTP ネゴシエーションパケットをダンプして中身を見てみると、 クライアントからの提案は暗号化方式ビットが全部0になっている。 それで1トライして、さらに何故か IPv6 でネゴって、失敗すると接続を切ってしまうようだ。 さすがに暗号化なしの平文では余り使う気になれないな…。40bit でも嫌だけど。

2007年01月11日
 ■ 秋葉原の思い出(1)

年末に秋葉原に行って、変貌したアキバの街をつぶさに見てきた。 そうして眺めているうちに色々なことを思い出してきたので、 自分用のメモとして、 思い出せる限りの店の移り変わりなんかを少しずつ書きとめておきたい。 多分これから歳をとって記憶力が薄れていって、思い出せなくなりそうだから。

続きを読む "秋葉原の思い出(1)"

2007年01月06日
 ■ W-ZERO3 [es] の小ネタ続き

さらに続きますよ。

料金プラン

私はウィルコム定額プラン+リアルインターネットプラスにしてみた。 なんか両方で端末の値段が割引されて、10000円も安くなったから。 データ定額にすると10万パケット以上は従量制になってしまう (36万パケットで天井だけど、そんなに使ったら月3800円もする) ので、 データ定額ではなくリアルインターネットプラスにしてみた。 こっちだと 4x が使えないけども。

実際、新年明けてから今日までのわずか6日間で42万パケット使ってますわ。 いくら休暇中だからといっても、ちょっと使いすぎだよなあ。 でも、これだけ使ってもリアルインターネットプラスなら月2100円というのはありがたい。

現在の使用量が My WILLCOM サイトで見られるのは便利ですな。 料金コースもオンラインで変えられるみたいだし。


ActiveSync 同期フォルダの名前

母艦 PC 側の同期フォルダの名前を 「WM_ユーザ名 My Documents」から変える方法は無いらしい。 ActiveSync の仕様っぽい。

Windows Mobile デバイスの側で 「スタート」→「設定」→「システム」タブ→「バージョン情報」→「デバイス ID」 タブを開いてデバイス名を変えても、ActiveSync で同期すると元に戻されてしまう。 何とかならんもんかなあ。


miniSD 無線 LAN カード、本体側スロット

W-ZERO3 [es] の購入を考えている人に一つ忠告しておきますと、 miniSD 無線 LAN カードは miniSD カードサイズじゃないので、 スロットからはみ出てしまってフタが閉められません。 使用方法が無線 LAN 主体の人は、無線 LAN デバイスが内蔵されている W-ZERO3 無印 (WS003SH/WS004SH) の方が良いかもしれない。

あと、miniSD カードスロット以外にも、 W-ZERO3 [es] 本体には USB スロットと平型コネクタがあって全部フタが付いているのだけど、 これが開けにくい上、取り外せないからスロット使用中はブラブラして落ち着かない。

完全に取り外せるようにするとフタ失くす人続出だろうから、 このあたりは難しいところだけど、 うまいこと改良して欲しいもんです。


PC からモデムとして使う

PC に USB 接続してモデムとして利用するには、W-ZERO3 側で 「スタート」→「設定」→「接続」タブ→「USB接続」を開いて、 「モデムとして使用する」にチェックをつける。 この状態で USB ケーブルで W-ZERO3 と PC を繋ぐと PC 側でハードウェアが検出されるから、 USB モデムドライバ (シャープのサイトからダウンロードできる) をインストールする。

2007年01月05日
 ■ W-ZERO3 [es] の小ネタ色々

無線 LAN

細かいことだけど、AES 暗号化が使えない。

2006-01-06-01.png

最強でも WPA-PSK TKIP までである。


NetBIOS over TCP/IP

自宅の無線 LAN に接続すれば、普通に Windows ファイル共有が使える。 ファイルエクスプローラでパス (\\サーバ名\共有フォルダ) を指定して共有フォルダを表示できるが、 この場合はワイヤレスネットワークの構成を「社内ネットワーク設定」に向ける必要がある。

2006-01-06-02.png

GSFinder なら、ネットワーク構成を変えなくてもアドレス欄にパスを指定することで表示可能。

2006-01-06-03.png

さらには、TCPMP でファイルを開くときにもネットワーク共有上のファイルを開くことが出来る。

2006-01-06-04.png

が、動画ファイルはさすがに転送速度が追いつかないので苦しい。MP3くらいなら問題ない。 あっというまに電池が減るけれど (MP3 の再生ではなく、無線 LAN でかなり電力が食われる)。


PPTP

これはどうもうまく行かない。 まず Club AIR-EDGE プロバイダでは GRE をフィルタリングしているようで、 そもそもパケットが通らない。この時はタイムアウトになるので、サーバ側のログは以下の通り。

Jan  4 15:34:44 pptpsv pppd[925]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Jan  4 15:34:44 pptpsv pppd[925]: pptpd-logwtmp: $Version$
Jan  4 15:34:44 pptpsv pppd[925]: pppd 2.4.3 started by root, uid 0
Jan  4 15:34:44 pptpsv pppd[925]: Using interface ppp0
Jan  4 15:34:44 pptpsv pppd[925]: Connect: ppp0 <--> /dev/pts/1
Jan  4 15:35:14 pptpsv pppd[925]: LCP: timeout sending Config-Requests 
Jan  4 15:35:14 pptpsv pppd[925]: Connection terminated.

無線 LAN 経由でやってみるとある程度までは行くが、エラーで終了する。 ログはこんな感じ↓

Jan  5 21:16:21 pptpsv pppd[202]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Jan  5 21:16:21 pptpsv pppd[202]: pppd 2.4.3 started by root, uid 0
Jan  5 21:16:21 pptpsv pppd[202]: Using interface ppp0
Jan  5 21:16:21 pptpsv pppd[202]: Connect: ppp0 <--> /dev/pts/1
Jan  5 21:16:22 pptpsv pppd[202]: kernel does not support PPP filtering
Jan  5 21:16:22 pptpsv pppd[202]: Connection terminated.
Jan  5 21:16:22 pptpsv pppd[202]: Connect time 0.1 minutes.
Jan  5 21:16:22 pptpsv pppd[202]: Sent 14 bytes, received 64 bytes.
Jan  5 21:16:22 pptpsv pppd[202]: Exit.

このあたりはもうちょっと原因を探ってみる必要がある。 ちなみにサーバ側は Debian sarge (カーネル 2.6.16)である。

 ■ W-ZERO3 [es] カスタマイズ

正月休み延長戦で1/4・5日も休んでいる。 土日まで休みで、こんなに長いと感覚が狂ってくるな。

W-ZERO3 [es] をちょこちょこといじってみたり。 なんか年末調子悪かったので、新年一発目でフォーマットかけてみた。 環境整えなおしだ。

あんまりカスタマイズしまくると、 またフォーマットかけたときに再構築するのがめんどくさいので、 カスタマイズは最小限にしておく。 そのポリシーに沿った上で、 自分の使い勝手として最低限やっとかないといかんカスタマイズをここにメモしておこう。


I. ブックマーク・連絡先のリストア

I-1. GSFinder+ for WM5

アーカイバ等の機能充実なファイラ。 これを入れないと、zip ファイルとか展開できないので最初に入れる。

I-2. ブックマークのリストア

miniSDカードにコピーしておいた opera6.adr を、"\Application Data\Opera" の下に上書きコピーする。

I-3. アドレス帳CSVコンバータ

私の場合は、これのCSV形式で「連絡先」のバックアップを取っているので必須。 .NET Compact Framework 2.0 SP1 も動作に必須なので、先に入れとく。 .NET CF をインストールするには母艦と ActiveSync する必要がある。

ここで「連絡先」のバックアップをリストアしておく。 また、Outlook Mobile のアカウント設定もこのタイミングでやっておく。


II. ちょっとしたカスタマイズ (標準機能による)

II-1. Today でのキーバインド

「スタート」→「設定」→「個人用」タブ→「Today」→「ホームメニュー」タブを開いて、 「パターン2(または3)」を選択することで、カーソルキーで Today 画面を移動できる。 アクションキーによる「ホーム」メニューが使えなくなるが、どうせ使わないし別にいいや。

II-2. ソフトウェアキーボードをポップアップしないようにする

2ch 情報まとめ WikiW-ZERO3 Wiki を参照。
「スタート」→「設定」→「個人用」タブ→「入力」→「入力方法」タブ→「オプション」ボタン と開いて、語句に「あ」などと入力してそのままOKボタンを押す。 以後、ソフトウェアキーボードは自動ポップアップしなくなるので、 必要なときは下タスクバーの「あ/A」をタップして出す。

II-3. 「実行中のプログラム」ショートカット作成

WinCE FAN の Wiki 参照。
標準のファイルエクスプローラではこのタイプのショートカットを作れないので、 GSFinder などのファイラが必須。 ショートカットを作ったら、スタートメニュー直下 (\Windows\スタート メニュー) に置いておく。 ここに置けるショートカットは7つまでなので、他のどれかを消す (私の場合は「ライトメール」)。 まず「プログラム」の下にショートカットを置いて、 「設定」→「個人用」タブ→「メニュー」で管理したほうがいいかも。


III. キーボードカスタマイズ

III-1. TRE

これを使って、QWERTY キーボードで ATOK オンオフができるようにレジストリをいじる。 やり方は WinCE FAN を参照。

III-2. PQzII

このソフトを使って、左右ソフトキーなどの長押しに特定機能を割り当てる。 私の場合は、

  • 左ソフトキー長押し --- Runner[es] (ランチャ)
  • 右ソフトキー長押し --- TaskMan (タスク切り替え)
  • okキー --- 前面アプリを終了 (PQzII の設定で可能)

こんな具合にしている。

それぞれ呼び出される側のソフトをインストールしてから PQzII の機能で割り当てる。


IV. 無線 LAN 関係

miniSD 無線 LAN カード「IMSW-822」のドライバを入れる。

ハードウェアベンダ (IBS Japan) のサイトから、最新版ドライバ (現時点では IMSW-822-V2.0_CAB) と、ユーティリティソフト (LoadWLAN11b.CAB) をダウンロードしてインストールする。

WILLCOM の「無線LAN接続切替ツール」は、インストールしないほうが調子がいいようだ。 つーか、これ入れると miniSD の活線挿抜で自動認識しなくなり、ソフトリセット必須になる (私の環境では)。


V. その他のアプリ

後は順不同で使いたいソフトを入れていく。

V-1. StationMobile

ピクセラのワンセグユニット「PIX-ST040-PU0」用のドライバ・再生ソフト。 最新版をピクセラのサイトからダウンロードして利用する。

V-2. PocketPuTTY

ある意味これを使いたくて W-ZERO3 [es] 買ったようなもんです。 PC用の PuTTY とほとんど同じインターフェイスでリモートログインできる。 これ自体には自動ダイヤルアップ機能が無いようなので AutoConnect も入れておく。ATOK はオフにしておかないと迂遠な入力になる。

V-3. MoCo

コミケットカタログブラウザ。今回 C71 ではお世話になりました。 私の使用方法の範囲では特に不具合も無く、うまく動作した。 ieキーやメールキーにも機能が割り当てられてしまっているのが、少々不便かも。 また、データを miniSD カードのルートディレクトリにそのまま配置するのがちょっと不満。 一段ディレクトリを掘ってくれればいいのに。

V-4. 〇号テキストエディタ

軽くて高機能なテキストエディタ。

V-5. Pocketの手

高機能なカスタマイズツール。 私は縦スクロールバーを太くするのにしか使ってないけど。 縦スクロールバーの幅は15ピクセルに指定。 それ以上太くすると「設定」画面の配置が崩れてしまう。

V-6. ちず丸 for WILLCOM

WILLCOM謹製配布ツール。 PHS位置取得を利用して、現在位置付近の地図を表示できる。 が、すでにダイヤルアップしてると接続をいったん切らなきゃならなかったり、 年末の東京移動では亀戸付近で位置取得に失敗したりして、使えない場合も多い。

V-7. TCPMP

動画・音楽プレーヤ。色々再生できる。特に ogg は必須でしょ。

V-8. MenuKeyHelper

Windows Mobile 5.0 のソフトキーに対応していないソフトウェア (私の使っている範囲では〇号テキストエディタ、TCPMP、TRE が相当する) をソフトキーで操作するのに必要。

V-9. ChgSuisoku

これを常駐させておけば、QWERTY キーボードを出して横画面にしたときは自動的に推測変換を無効化してくれる。

V-10. cmd.exe

DOS みたいなコマンドプロンプトを使えるようにしておく。やり方は WinCE FAN の Wiki 参照。


VI. 待受画面

2007-01-05-01.jpg

痛い携帯にしてみた。

Today に色々常駐させるとメモリを食いそうなので、そのあたりは全くいじっていない。

続きを読む "W-ZERO3 [es] カスタマイズ"

2006年12月25日
 ■ W-ZERO3 [es] 買いました

昨日はラーメン食う前に名駅裏のビックカメラに行って、 W-ZERO3 [es] を買ってきた。 今頃買ったのかよ、と言ってくれるな。 携帯電話の類を、自分から欲しくなって買ったのは実は初めてだ。 なんか、外出時の通信手段に金かけるのはどうも抵抗感があって。

ワンセグチューナーセット、さらに MiniSD 無線 LAN カードも付けて買ってきた。 携帯(PHSだけど) の契約って、意外と簡単なものなんだなあ、という印象。 もっとメンドクサイ書類手続きがあるのかと思ってた。

で、今日は家の掃除などしつつちょこちょことイジっていたのだが、 色々面白い使い方ができそうな反面、使いにくい面もあるなあという印象だ。

2006-12-24-01.jpg

少なくとも一つ言えるのは、普通の携帯としてもちゃんと使える、ということ。(当たり前) ちょっと筐体は大きいけど、右ボタンでリダイヤル/左ボタンで着信履歴を見られるし、 通常の携帯風メニューもあるし、ごく普通に携帯風に使うことに全く問題が無い。

その上でスマートフォンとして、拡張機能を使っていければよいのだけど、 少しずつ痒いところに手が届きかねる感じだ。 標準のメールソフト (W-ZERO3メール) は、動作は軽快で良いのだけど、 一般プロバイダのサーバ設定をする際に IMAP に対応していないのが痛い。 もう一つのメールソフトとして Outlook Mobile が入っているので、そっちを使うことにする。 が、こっちはこっちで Courier IMAP のメールフォルダ名前空間に対応してないんだよなあ。

無線LANのカードは相当がんばって小さくしているのだろうけど、 それでも MiniSD サイズをオーバーしているので、 本体に挿すと MiniSD スロットのフタを閉められず、中途半端な格好になってしまう。 これは標準内蔵で実現して欲しい機能だ。

ワンセグチューナーは、装着するためには本体側にステーとなるプレートを両面テープで 貼り付けなければならないのがちょっと嫌だ。 装着してしまえば割と本体に馴染んだ形になるが、USB コネクタの出っ張りは結構大きい。 さらに、本体に装着してしまうと電波の感度がかなり下がる。

2006-12-24-02.jpg

こんな感じで窓際に行っても、自宅の環境ではかなり受信感度が苦しい。 USBケーブルで外付けすればかなり感度は上がるのだけど、 そうすると本体装着前提のチューナーの形が、実に収まりが悪い。 どうにも中途半端だなあ、という印象だ。いや、かなりメーカーさんが頑張ってるのはわかるのだけど。

ただ、このあたりはビックカメラの店員さんが売る前に全部説明してくれたことであって、 納得づくで買った私には、文句言う権利は無い。 ビックカメラの店員さんはかなり正直な人だったなあ、と思う。

あと、自宅の PPTP サーバにはなぜかうまく接続できない。 この辺は今後色々トライしてみようと思う。

2006年11月23日
 ■ プリンタ購入

新規にプリンタを購入した。 HP の Photosmart 3210 という型番。

2006-11-23-01.jpg

HP の直販サイトで、オプションの両面印刷ユニットまで付けて 23,730円という処分価格だったので、ついポチっとしてしまったのだ。

安い割に LAN ポートが付いていて、ネットワークプリンタとして 使えるのが魅力。直接 USB で PC に繋ぐと、何らかのプロトコルで 共有しなきゃならないし、プリンタを使いたいときにはそのPCを 起動しなくちゃならないから。他のメーカの普及価格帯のプリンタには LAN 機能付いてないんだよな。

いかにも在庫処分という値段だった (本体だけなら18,900円だったかな) ので飛びついた人が多かったのか、私の発注後に在庫切れになってしまって、 結局物が届くまで3週間もかかった。なんだかなあ。

ネット上での評判を見るに、色々トラぶりそうなブツではあるけれど、 何しろ安かったので割り切って使うことにする。

2006年11月11日
 ■ Cyrus SASL + PAM on Mac OS X

MacPorts で cyrus-sasl2 をインストールしても、 saslauthd で PAM 認証が使えねーっス。 (9/28分参照)

なんでかなーと思ってたのだけど、configure 時に libpam の検出に失敗してるらしい。 つーことで、build する前に saslauthd.h と Makefile を編集して強制的に有効化すると 使えるようになるようだ。

sudo port configure cyrus-sasl2
cd /opt/local/var/db/dports
cd sources/rsync.rsync.darwinports.org_dpupdate_dports
cd security/cyrus-sasl2
cd work/cyrus-sasl-2.1.21/saslauthd
sudo vi saslauthd.h
91行目
/* #undef HAVE_PAM */
↓
#define HAVE_PAM 1
sudo vi Makefile
70行目
LIBS = -lresolv -lresolv
↓
LIBS = -lresolv -lpam

ビルドしなおして、今入ってるヤツをアンインストールしてから再インストール。

sudo port build cyrus-sasl2
sudo port -f uninstall cyrus-sasl2
sudo port install cyrus-sasl2

で、このようにしてインストールした Cyrus SASL で何がやりたいかってーと Postfix からリンクして、PAM 経由で OS ユーザを使って SMTP AUTH を 利用したいわけです。

あと必要な作業は以下のとおり。

1. OS ユーザを作成、/etc/master.passwd にシャドウパスワードが記載された状態にする。

2. /opt/local/lib/sasl2/smtpd.conf を作る。

sudo vi /opt/local/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login

3. /etc/pam.d の下に、設定ファイル smtp を作る。

sudo vi /etc/pam.d/smtp
auth    sufficient      pam_securityserver.so
auth    sufficient      pam_unix.so
auth    required        pam_deny.so
account required        pam_permit.so

4. Postfix に SMTP AUTH 用設定をする。

MacPorts で Postfix をインストールするときに、sasl を使えるように指定しておくこと。 Portfile を編集して Cyrus を使えるようにすることも忘れずに。

参照: 9/19分の日記

sudo vi /opt/local/etc/postfix/main.cf
2行追加
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
リレー制限解除条件に SASL 認証を加える
smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated, ←これ
        permit_auth_destination, reject

5. saslauthd を起動する。

sudo /opt/local/sbin/saslauthd -a pam

実際動くことを確認したら、postfix の起動スクリプトに saslauthd を起動するよう追加する。

cd /opt/local/etc/LaunchDaemons/org.macports.postfix
sudo vi postfix.wrapper
Start()
{
    /opt/local/sbin/saslauthd -a pam ←追加
    /opt/local/sbin/postfix start
}
Stop()
{
    /opt/local/sbin/postfix stop
    kill `cat /opt/local/var/state/saslauthd/saslauthd.pid` ←追加
}

以上。

2007/03/13 追記: naoya さんからの情報により誤りを訂正。

2006年10月31日
 ■ ルータ不具合

本日 AM11:00 ごろから、ルータマシンの不調により gema.luna2.org へのアクセスができなくなっていました。この間に繋ごうとした方、ご迷惑をおかけしました。

自宅に戻ってルータマシン再起動で治っちまったので、原因は不明。 ただし、未だ DNS 解決が遅いので、どこかにトラブルの種が残っているかも。

2006年10月29日
 ■ 備忘録

DarwinPorts (MacPorts に改名?) を使ったシステム構築の 備忘録を書いとこう。今まで書き忘れてたこともまとめておかないと、 update したときに書き換わってしまって、動かない Ports が出てくる。

1. courier-authlib

authdaemond を起動するスクリプトが無いので、自分で作る必要がある。 imapd 起動スクリプトに書き加えてしまうのが楽だ。

cd /opt/local/etc/LaunchDaemons/org.macports.courier-imap
vi courier-imap.wrapper
Start()
{
    /opt/local/sbin/authdaemond start ←追加
    /opt/local/libexec/imapd.rc start ← IMAP が必要なら追加
    /opt/local/libexec/imapd-ssl.rc start
}
Stop()
{
    /opt/local/libexec/imapd-ssl.rc stop
    /opt/local/libexec/imapd.rc stop ← IMAP が必要なら追加
    /opt/local/sbin/authdaemond stop ←追加
}

2. net-snmp

Mac OS X 10.4 Intel には /dev/mem (/dev/kmem も) が無いので、 snmpd は動作しない。MRTG とかでデータを採りたい場合は、 何らかのスクリプトを自作する必要があるだろう。

この関連で、net-snmp を必要とする cyrus-imapd の port もぶっ壊れている。 Portfile の configure.args オプションに

--with-com_err
--without-snmp

の2つを追加すれば、一応インストールは出来る。 /opt/local/share/man/man8/master.8.gz が postfix とカブるとか、問題はあるけれど。

Mac OS X 10.4 Intel に /dev/mem や /dev/kmem が無いことについては、 Accessing Kernel Memory on the x86 Version of Mac OS X を参照。

2006年10月13日
 ■ DarwinPorts アップデート

DarwinPorts を久々にアップデートしてみた。

すると、gettext がアップデートされていて、再コンパイル

→libintl のバージョンが 3 から 8 に

→古い libintl.3.dylib が消され、リンクしているバイナリが全部動かない

→DarwinPorts からインストールした bash が動かない

という段取りでログイン不可能になってしまった。そりゃあんまりだ! 他にも PHP と wget が動かなくなったよ。

古い共有ライブラリは残しておいて欲しいな、と切に思う。

それと、Mac OS X には ldd が無いので、実行ファイルから リンクしているライブラリを調べる方法が無い。 objdump も無いし。何か代替の方法があるのだろうか。

続きを読む "DarwinPorts アップデート"

2006年10月06日
 ■ Intel Mac mini 雑感

Intel Mac mini (MA607J/A) をサーバとして運用し始めたのが9/17、
そろそろ3週間が経とうとしているので、ここらで今のところの雑感を
まとめておこう。

そもそも Intel Mac mini をサーバとして使うために購入したのは、
先代自宅サーバの OpenBlockS266 の CPU パワー不足が顕著に
なってきたためだった。CPU は PowerPC 266MHz (FPU無し) だった
のだからパワーなど求めてはいけないのだが、Apache 経由で色々な
仕事をさせようと思うと、やはり計算能力は大量に必要だったのだ。

他にも、メールサーバとして SPAM 処理やウィルス処理をさせようと
思うととたんに CPU パワーが必要となり、さすがに OpenBlockS では
辛くなってきた。

そこで白羽の矢が立ったのが Intel Mac だった。
特に Mac mini は Intel になってから半年が経ち、ちょうどマイナーチェンジ
して安くなった頃合だった。廉価版の MA607J/A でも、初期型 (3月版) の
上位機種と同じスペック (HDD容量だけは初期型 MA608J/A 80GB に対して
9月版 MA607J/A 60GB) である上、¥74800 で買えるのだ。

結局悩んだ末、メモリを 1GB に増設して約8万5000円で廉価版を購入した。

3週間ほど運用してみて、その性能の高さには満足している。
PukiWiki の動きが、見違えるほど高速だ。まあ、比較対象が全く問題に
ならないのだが。
OpenBlockS は ルータ/DNS/DHCP/NTP として今も役割を果たしている。

Mac mini のサーバ運用で心配な点は、
1. 2.5inch ハードディスクの耐久性
2. OS アップデートによってリブートが不意に必要になる
ということ。

ハードディスクについてはまめにバックアップを取って対処することにする。
/Users と /opt を取っておけば、OS 再インストール後すぐに復旧できるはず。

OS のアップデートでリブートが必要になるのはある意味仕方ないが、
理由がよく解らないままリブートさせられるのは気になる。
FreeBSD や Linux なら、カーネルか libc のアップデートでもない限り
リブートをする必要など無いし、必要になったとしても理由が明快なのだ。
このあたりは、普通のクライアント OS をサーバに利用しているデメリットとして
割り切るしかないだろう。

2006年10月04日
 ■ 波ダッシュについて

この Movable Type では、波ダッシュ文字「〜」、もしくは
全角チルダ「~」をソースに入力しても、「?」と表示されてしまう。

たぶん Windows 上のブラウザからは、文字列が Shift_JIS で
プログラムに渡されている。
Perl の処理のどこかの段階で文字コード変換が行われており、
Unicode でのマッピングが統一されておらず、一意な文字コード変換が
できないので、あえて変換をスキップしてしまうのだろう。

仕方がないので、この文字については実体参照で記述する。

波ダッシュ「〜」
&#12316; (10進表記)
&#x301C; (16進表記)

全角チルダ「~」
&#65374; (10進表記)
&#xFF5E; (16進表記)

この2つの字形が、Mac では同じだったりするんだよなあ。

参考: 波ダッシュ - Wikipedia

また、このサイトではトラックバックを受け付けていないので関係ないけど、
日記のタイトルにこれらの文字を使うとトラックバックに問題があるようだ。

2006年10月02日
 ■ SquirrelMail の添付ファイル文字化け

Mac OS X に移行してから SquirrelMail を使ってなかったのだが、 あらためて今使ってみると、添付ファイルの日本語ファイル名が 化けてしまった。

php の設定っぽいので、mbstring 周りをごちゃごちゃいじってみる。 結果、以下の設定で化けなくなった。

mbstring.language = Japanese
mbstring.http_input = auto

特に文字コードとして SJIS を指定する必要はなさそう…。

2006年09月29日
 ■ vim とか Emacs とか

Mac OS X 環境構築計画第13弾。

今回はユーザとしての環境を整える。
エディタが UTF-8 を扱えないのは困るので、設定しておく。
あ、ちなみに今回は日本語コードを UTF-8 で統一します。
環境変数 LANG は ja_JP.UTF-8。


1. Terminal.app
うちの Mac mini はヘッドレス運用なので、Aqua GUI を
使うのはごく稀に VNC 経由で行うくらいなのだけど、
一応設定しておく。

「Beginning OSX」のTerminal.app の設定からまるパクリである。


2. Emacs
標準の Emacs は古い (21.2.1) ので、UTF-8 に対応していない。
たぶん Mule-UCS を入れれば対応するんだろうけど…。
いっそのこと最新版を使いたいので、銭谷版 CarbonEmacs
ダウンロードしてきてインストールする。
.dmg ファイルなので、ダブルクリックして出てきた画面から
「Emacs」を「アプリケーション」フォルダにドラッグ。

ln -s /Applications/Emacs.app/Contents/MacOS/bin/emacs /opt/local/bin/emacs
という具合にシンボリックリンクを張って、シェルから起動
できるようにしておく。
実際には GUI を使わず、ssh でログインして -nw モードばかり
使っている。


3. vim

OS 標準添付の vim はバージョン 6.2 で、マルチバイト文字や
iconv にも対応している。ファイルの文字コードの自動判別も
一応出来る。

vim ~/.vimrc
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=iso-2022-jp,utf-8,euc-jp,cp932

このように設定しておけば、一応4種類のコードは
自動判別可能。ただし ucs-2 とか余計なのを入れると、
とたんに失敗する。

2006年09月28日
 ■ Courier-IMAP

今回はメール取り出し側の IMAP サーバについて。

最初は Cyrus IMAP を使おうと思ったのだけれど、 DarwinPorts が壊れてるっぽいのと、Maildir に 対応していないので断念。 Courier-IMAP を使うことにする。

1. インストール

sudo port install courier-imap

途中すっ飛ばして先に結論を言っておくと、どうしても authlib で authpwd や shadow 認証が使えない。 Mac OS X ではユーザデータベースを passwd ではなく NetInfo で管理しているから、当然といえば当然だが、 passwd と master.passwd を自分で作成しても、 依然として使えないのだ。何故…? (この事象の解決方法については11月11日分の日記を参照)

この際 authuserdb を使うことにしてしまえば、 MD5 認証も使えるし、そっちを利用することにした。 NetInfo と Cyrus SASL 以外に、3つ目のユーザデータベースを 管理しなくちゃならなくなるけど…。

2. courier-authlib の設定

authdaemonrc をテンプレからコピー。

cd /opt/local/etc/authlib
sudo cp -p authdaemonrc.dist authdaemonrc

最初から authuserdb が最優先の設定なので、 編集する必要は無い。

次に userdb でユーザを登録する。

sudo userdb gema set home=/Users/gema mail=/Users/gema/Maildir uid=501 gid=501

ユーザが登録されたら、パスワードを設定する。

userdbpw | sudo userdb gema set imappw
userdbpw -hmac-md5 | sudo userdb gema set hmac-md5pw

上は平文パスワードの設定、下は MD5 パスワードの設定。

最後に DB をハッシュデータベース化する。

sudo makeuserdb

/opt/local/etc/authlib/userdb がデータベースファイルとなるが、 一般ユーザから読み込めても困るので、root だけが読めるようにしておく。

sudo chmod 600 /opt/local/etc/authlib/userdb*

3. imap、imap-ssl の設定

/opt/local/etc/courier-imap の下の imapd、imapd-ssl を編集する。

cd /opt/local/etc/courier-imap
vi imapd

MAXPERIP=4 を 20 に変更 (4は一人で利用するにも少なすぎ) IMAP_CAPABILITY の行を、AUTH=CRAM-MD5 を含む行に変更 (最初からコメントで入っているので、そちらを有効化) IMAPDSTART=NO を YES に変更 これで保存する。

imapd-ssl のほうは、

vi imapd-ssl
IMAPDSSLSTART=NO を YES に変更

これだけ。 今回は pop3 を利用しないので、設定はしない。

4. 起動設定

/Library/LaunchDaemons/org.macports.courier-imap.plist から 呼び出される起動スクリプトの中に、imapd-ssl と authdaemond の 起動を行う記述が無いので、追加しておく。

vi /opt/local/etc/LaunchDaemons/org.macports.courier-imap/courier-imap.wrapper

Start のセクションの中に、

/opt/local/sbin/authdaemond start
/opt/local/libexec/imapd-ssl.rc start

を追加、Stop のセクションの中に、

/opt/local/libexec/imapd-ssl.rc stop
/opt/local/sbin/authdaemond stop

を追加したら、起動を行う。

sudo launchctl load -w /Library/LaunchDaemons/org.macports.courier-imap.plist

これで IMAP、IMAPS、MD5 認証をどのように組み合わせても うまく認証できている。 検証環境クライアントは Thunderbird 1.5.0.7 (Windows)。

あ、あと Maildir を使うことになるので、Postfix の設定で

home_mailbox = Maildir/

にしておくことを忘れずに。

 ■ Cyrus SASL

Mac OS X のサーバ環境構築第11弾。

つーか、Postfix で SASL 認証を使うんだから、
Postfix より先にこちらの整備をしとかなきゃならない。
ドキュメント書く順番間違えた…

DarwinPorts の cyrus-sasl2 パッケージ自体は、
postfix の +sasl2 variants の依存関係でインストールされる。

考えてみれば、Cyrus SASL の設定は、
1. sasldb を作ってユーザ登録
2. postfix から利用できるようにする
だけでいいんだった…
Postfix その2の回の記述だけでOKですわ。

2006年09月27日
 ■ Movable Type アップデート

なんかクロスサイトスクリプティング脆弱性が
発見されたらしく、バージョン 3.33-ja が出てる。
上書き&再構築で無事アップデートできた。

上書きのみとはいえ、perl のパスを全部 /opt/local/bin/perl
(DarwinPorts インストールしたほうの perl) に書き換えないと
いけないので、結構めんどくさい。

for i in `find mt | xargs grep '#!/usr/bin/perl' | awk -F: '{print $1}'`; do
cp -p $i $i.orig
sed 's;#!/usr/bin/perl;#!/opt/local/bin/perl;' $i.orig > $i
perm=`ls -l $i.orig | awk '{print $1}'`
if [ "$perm" = "-rwxr-xr-x" ]; then
chmod 755 $i
fi
rm $i.orig
done
こんな感じのシェルスクリプトを書いて対応。

Mac OS X って getfacl が無いから、シェルスクリプトで
ファイルパーミッションを取得するには ls -l しか
思いつかなかった。もっと良い方法は無いものか。

 ■ bsfilter とか spamassassin とか

私の場合、特に以前利用していたプロバイダの
メールアドレスに SPAM がやたら届くので、
ユーザサイドでの対策を施しておく。

Debian on OpenBlockS のときも対策していたので、
それを移植するだけなんだが。


・spamassassin
DarwinPorts にあるので、インストールしておく。
sudo port install p5-mail-spamassassin

設定ファイル ~/.spamassassin/user_prefs は、OpenBlockS の
方からコピー。
元は TLEC からもらってきたもの。
私はこれをベースに独自カスタマイズしている。


・bsfilter
公式サイトからソースをダウンロード、
bsfilter コマンド本体を $HOME/bin にコピーするだけ。

これは ruby スクリプトなので、ruby インタプリタが必要。
インストールは DarwinPorts で行うが、なぜか sdbm が
うまく動かないので、gdbm を使う。

sudo port install gdbm
sudo port install ruby
gdbm を先にインストールしておけば、ruby の gdbm
モジュールも自動的にコンパイルされる。

設定は $HOME/.bsfilter/bsfilter.conf に書く。
spam-cutoff 0.6
db gdbm
こんな感じ。


・SPAMの学習
SPAM をデータベースに登録する。
sa-learn --spam Maildir/.SPAM/cur/*
bsfilter -su Maildir/.SPAM/cur/*

SPAM でないメールも学習させる。
sa-learn --ham Maildir/cur/*
bsfilter -cu Maildir/cur/*


・実際の起動
spamassassin も bsfilter も procmail から呼ぶことにする。
procmail は標準で /usr/bin にある。
設定を以下のように書いて
:0fw
| /opt/local/bin/spamassassin

:0fw
| /Users/yatt/bin/bsfilter -a --pipe --insert-flag --insert-probability

:0
* ^X-Spam-Status: Yes
$MAILDIR/.Junk/

:0
* ^X-Spam-Flag: Yes
$MAILDIR/.Junk/
これで完成。SPAM と判定されれば Maildir/.Junk の
下に自動的に振り分けられる。

2006年09月21日
 ■ gmp on sparc32

ちょっと Mac OS X を置いておいて、Solaris の話題など。

ClamAV を動かすのに gmp (GNU Multi Precision) ライブラリが必要なのだけれど、 gmp を普通にインストールすると ultrasparc なマシンの上では sparc64 なライブラリが出来てしまって、ClamAV 32bit バイナリから リンクできない。

gmp は 32bit ライブラリとしてインストールするべし。 configure 実行時に、

./configure --build=supersparc-sun-solaris2.10

などとオプションを与えればよい。 supersparc のところは sparcv8 でも行けるはず。

注: 64bit でコンパイルしたソースツリーをそのまま使うと エラーになるので、いったんソースツリーを消して再度展開すること。

検証環境:

OS: Solaris10 6/06
コンパイラ: gcc-3.4.3 (Solaris10 標準添付)
2006年09月20日
 ■ Postfix その3

SMTP AUTH は出来たが、Outlook Express では ハッシュ認証 (CRAM-MD5、DIGEST-MD5) に 対応していないので、セキュリティ的に問題がある。

プレーンパスワードでも問題ないようにするには、 SMTP 自体を暗号化してしまえばよい。 っつーことで、SMTP over SSL を導入します。

vi /opt/local/etc/postfix/main.cf
# certfile
smtpd_tls_cert_file = /opt/local/etc/postfix/smtpd.pem
# keyfile
smtpd_tls_key_file = /opt/local/etc/postfix/smtpd.pem
# use STARTTLS
smtpd_use_tls = yes

これで、STARTTLS コマンドを利用した TCP/25 番ポート 上での SMTP over TLS は完成。

ポート465上での、STARTTLS を使わない SMTPS を利用するには、 master.cf を編集する。すでにコメント状態のものがデフォルトで 入っているので、コメントをはずすだけ。

vi /opt/local/etc/postfix/master.cf
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

さらに、Mac OS X では /etc/services の 465/tcp が urd なる サービスに割り当てられてしまっているので、これを編集して smtps にしておく。

smtps           465/tcp     # SMTP over SSL
#urd             465/tcp     # URL Rendesvous Directory for SSM

これで 465/tcp 上の SMTPS も完成。

 ■ Postfix その2

次は、SMTP AUTH に対応させるため、Cyrus SASL の ユーザデータベースを作る。

cd /opt/local/etc
sudo saslpasswd2 -c -u gema.luna2.org gema
Password: 
Again (for verification):

これだけでは DB を誰にでも読めてしまって セキュリティ的に問題があるので、postfix からだけ 読み込めるよう権限を変更しておく。

sudo chgrp postfix sasldb2.db
sudo chmod 640 sasldb2.db

ユーザデータベースができたら、それを Postfix で 利用できるよう設定を変更する。

vi /opt/local/etc/postfix/main.cf
# enable SASL authentication.
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
        permit_mynetworks, permit_sasl_authenticated,
        permit_auth_destination, reject
# compatibility for old Outlook Express.
broken_sasl_auth_clients = yes

また、SASL の認証メカニズムを smtpd.conf で 指定しておく。

vi /opt/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
mech_list: CRAM-MD5 DIGEST-MD5 plain login

これで SMTP AUTH 完成。

2006年09月19日
 ■ Postfix

さて、技術文書の続き。 その6は Postfix だ。

インストール自体は DarwinPorts でサクサク進む。

sudo port install postfix +pcre +tls +sasl

が、インストール後に postfix -a (利用可能な認証方式一覧を表示する) を実行すると、cyrus が表示されない。 dovecot というのは表示されるのだが…。

これでは Cyrus SASL で SMTP AUTH ができない。 原因を探ってみると、Portfile が間違っているので、 編集してやり直す。

vi /opt/local/var/db/dports/sources/rsync.rsync.
darwinports.org_dpupdate_dports/mail/postfix/Portfile
(↑実際は一行)

variant sasl セクションの CCARGS に、 -DUSE_CYRUS_SASL を追加して保存終了。

インストールできたら基本設定を施す。 うちの環境では、myhostname、mydomain、mydestination、 myorigin、mynetworks、home_mailbox を設定しただけ。

サービスを起動
sudo launchctl load -w /Library/LaunchDaemons/org.macports.postfix.plist

で、あっさり動いた。

2006年09月17日
 ■ Movable Type その2

MySQL の準備。

root パスワードの設定

$ mysqladmin5 -u root password 'password'

root でログイン

$ mysql5 -u root -p
Enter password:password
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 111 to server version: 5.0.24

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

一般ユーザー (dbuser) を作成

mysql> grant select,insert,delete,update,create,drop,file,
alter,index on *.* to dbuser@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)

ユーザーの追加を有効に

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

データベース (mt3) を作成

mysql> create database mt3;
Query OK, 1 row affected (0.03 sec)

MySQLをログアウト

mysql> exit
Bye

mt-config.cgi を編集して設定

cd /Users/www/cgi-bin/mt
sudo cp -p mt-config.cgi-original mt-config.cgi
sudo vi /Users/www/cgi-bin/mt/mt-config.cgi

CGIPath と StaticWebPath をサイトの設定にあわせて書き換え、 MySQL 関係のところも先ほど作った DB にあわせる。 Postgres や SQLite の設定は全部コメントアウト。

あとは cgi ディレクトリに Web ブラウザでログインし、blog ディレクトリを設定する。 blog を作成して一丁上がり。

 ■ Movable Type

Movable Type については、開発元からリンクをたどってファイルを取得する。

Movable Type には3種類のファイル置き場が必要だ。
・blog ファイル置き場 (動的に生成・apache 権限で書き込める必要がある)
・cgi ファイル置き場 (cgi を実行できる必要アリ。ただし普通の HTML も含むので ScriptAlias はダメ)
・static ファイル置き場 (JavaScript などの静的ファイル。apache で閲覧できればよし)

それぞれ、
/Users/www/mt
/Users/www/cgi-bin/mt
/Users/www/mt-static
に置くことにした。

アーカイブを展開して cgi とスタティックファイルを配置。
unzip MT-3_32-ja.zip
sudo mkdir -p /Users/www/cgi-bin
sudo mv MT-3.32-ja/mt-static /Users/www
sudo mv MT-3.32-ja /Users/www/cgi-bin/mt

ブログ置き場を作成して書き込み権限を確保。
sudo mkdir /Users/www/mt
sudo chown www:www /Users/www/mt

でもって、httpd.conf を編集する。
sudo vi /opt/local/apache2/conf/httpd.conf

要点は、cgi ディレクトリで ExecCGI を設定すること
(AddHandler cgi-script .cgi の有効化も忘れずに)
スタティックファイルと blog 置き場を読めるようにすること
(私は DocumentRoot を /Users/www に変更した)
の2点である。

 ■ Apache+MySQL+PHPの構築

構築メモその3。

MovableType と PukiWiki を動かすため、apache2 と mysql5 と php5 を DarwinPorts にてインストールする。

sudo port install apache2
sudo port install mysql5 +server
sudo port install php5 +apache2 +mysql5

そのまんま、すんなり入ってしまった。

Apache については、今まで使っていたサーバから httpd.conf を移植。
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
で起動。

MySQL については、
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
でサービスを起動、
sudo -u mysql mysql_install_db5
で新しい DB を準備。

PHP については、
cp -p /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
として、デフォルト設定ファイルを用意し、
cd /opt/local/apache2/modules
/opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
で、モジュールを httpd.conf に登録する。

PukiWiki については、前のサーバから持ってきただけですんなり動いた。
PHP4.1 から PHP5 に移行したのでハマるかと思っていたが、意外だ。

 ■ DarwinPorts その2

DarwinPorts がインストールできたら、
必要っぽいものをインストールしていく。

sudo port install wget
sudo port install lv
sudo port install bash
sudo port install nkf
sudo port install w3m

DarwinPorts の場合、variants という仕組みでコンパイル時オプションを渡すことができるので、それを使うこともある。
この後インストールする php5 ならば、こんな感じ

sudo port install php5 +apache2 +mysql5

どんな variants があるかは、port variants パッケージ名で調べることができる。

最新のパッケージに追従するには、以下のコマンドをたたく。

sudo port selfupdate
sudo port upgrade outdated

参考URL:
Beginning OSX

ほか、使いそうなコマンドを列挙。

・ある文字列を含む port を探す

port search cyrus

・あるファイルがどのパッケージに属しているか調べる

port provides /opt/local/libexec/postfix/smtpd
・あるパッケージに含まれるファイルを一覧表示
port contents apache2

・全 port を一覧表示

port list

・インストールされている port を一覧表示

port installed
 ■ DarwinPorts

Mac OS X の環境構築メモ その1。

ひとまず、無いと困るものを入れていこう。

パッケージシステムとして、DarwinPorts をインストール。
Fink ってのもあるらしいけど、DarwinPorts のほうが柔軟性高そうだ。

前準備として、Mac OS X のインストールディスクから XCode を先にインストールしておく。

また、DarwinPorts のデフォルトインストール先である /opt/local にコマンドサーチパスが通るようにしておく。

vi .bashrc
export PATH=/opt/local/bin:/opt/local/sbin:$PATH

ダウンロード・コンパイル・インストール。
curl -O http://darwinports.opendarwin.org/downloads/DarwinPorts-1.3.2.tar.bz2
tar xjf DarwinPorts-1.3.2.tar.bz2
cd DarwinPorts-1.3.2
./configure
make
sudo make install

アップデート
sudo port -d selfupdate

参考URL:
DarwinPorts
Darwin Portsのインストール

2006年09月16日
 ■ とりあえず

mac mini に MAMP 環境をインストールして、
Movable Type が動くようにしてみた。