なんだか「玄箱 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 ではフォワードポートが同じになることは (ほぼ) 無いので良いのだけれども。
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 に関連付けるレジストリ
土日きっちり休めるのは久しぶりの週末。 今日は、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
秋葉原の思い出その2。
前回の時点では、 電気街口からのかつての巡回ルートに沿って思い出話を書こうと思ってたのだけど、 急に気が変わったので、今日は中央通りの末広町寄りについて書いてみる。
Movable Type のテンプレートとスタイルシートの変更で、見た目を変えてみた。 元ネタは Movable Type入門からひっぱってきたものだ。 しばらくはこれで行ってみよう。
W-ZERO3 [es] の PPTP、つながらん原因がわかりましたわ。 これ、MPPE に全く対応して無いっぽい。 Google で探すと MPPE-40bit なら OK みたいな記事が見つかるのだけれど、 PPTP ネゴシエーションパケットをダンプして中身を見てみると、 クライアントからの提案は暗号化方式ビットが全部0になっている。 それで1トライして、さらに何故か IPv6 でネゴって、失敗すると接続を切ってしまうようだ。 さすがに暗号化なしの平文では余り使う気になれないな…。40bit でも嫌だけど。
年末に秋葉原に行って、変貌したアキバの街をつぶさに見てきた。 そうして眺めているうちに色々なことを思い出してきたので、 自分用のメモとして、 思い出せる限りの店の移り変わりなんかを少しずつ書きとめておきたい。 多分これから歳をとって記憶力が薄れていって、思い出せなくなりそうだから。
さらに続きますよ。
料金プラン
私はウィルコム定額プラン+リアルインターネットプラスにしてみた。 なんか両方で端末の値段が割引されて、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 モデムドライバ (シャープのサイトからダウンロードできる) をインストールする。
無線 LAN
細かいことだけど、AES 暗号化が使えない。
最強でも WPA-PSK TKIP までである。
NetBIOS over TCP/IP
自宅の無線 LAN に接続すれば、普通に Windows ファイル共有が使える。 ファイルエクスプローラでパス (\\サーバ名\共有フォルダ) を指定して共有フォルダを表示できるが、 この場合はワイヤレスネットワークの構成を「社内ネットワーク設定」に向ける必要がある。
GSFinder なら、ネットワーク構成を変えなくてもアドレス欄にパスを指定することで表示可能。
さらには、TCPMP でファイルを開くときにもネットワーク共有上のファイルを開くことが出来る。
が、動画ファイルはさすがに転送速度が追いつかないので苦しい。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)である。
正月休み延長戦で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 情報まとめ Wiki、W-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. 待受画面
痛い携帯にしてみた。
Today に色々常駐させるとメモリを食いそうなので、そのあたりは全くいじっていない。
昨日はラーメン食う前に名駅裏のビックカメラに行って、 W-ZERO3 [es] を買ってきた。 今頃買ったのかよ、と言ってくれるな。 携帯電話の類を、自分から欲しくなって買ったのは実は初めてだ。 なんか、外出時の通信手段に金かけるのはどうも抵抗感があって。
ワンセグチューナーセット、さらに MiniSD 無線 LAN カードも付けて買ってきた。 携帯(PHSだけど) の契約って、意外と簡単なものなんだなあ、という印象。 もっとメンドクサイ書類手続きがあるのかと思ってた。
で、今日は家の掃除などしつつちょこちょことイジっていたのだが、 色々面白い使い方ができそうな反面、使いにくい面もあるなあという印象だ。
少なくとも一つ言えるのは、普通の携帯としてもちゃんと使える、ということ。(当たり前) ちょっと筐体は大きいけど、右ボタンでリダイヤル/左ボタンで着信履歴を見られるし、 通常の携帯風メニューもあるし、ごく普通に携帯風に使うことに全く問題が無い。
その上でスマートフォンとして、拡張機能を使っていければよいのだけど、 少しずつ痒いところに手が届きかねる感じだ。 標準のメールソフト (W-ZERO3メール) は、動作は軽快で良いのだけど、 一般プロバイダのサーバ設定をする際に IMAP に対応していないのが痛い。 もう一つのメールソフトとして Outlook Mobile が入っているので、そっちを使うことにする。 が、こっちはこっちで Courier IMAP のメールフォルダ名前空間に対応してないんだよなあ。
無線LANのカードは相当がんばって小さくしているのだろうけど、 それでも MiniSD サイズをオーバーしているので、 本体に挿すと MiniSD スロットのフタを閉められず、中途半端な格好になってしまう。 これは標準内蔵で実現して欲しい機能だ。
ワンセグチューナーは、装着するためには本体側にステーとなるプレートを両面テープで 貼り付けなければならないのがちょっと嫌だ。 装着してしまえば割と本体に馴染んだ形になるが、USB コネクタの出っ張りは結構大きい。 さらに、本体に装着してしまうと電波の感度がかなり下がる。
こんな感じで窓際に行っても、自宅の環境ではかなり受信感度が苦しい。 USBケーブルで外付けすればかなり感度は上がるのだけど、 そうすると本体装着前提のチューナーの形が、実に収まりが悪い。 どうにも中途半端だなあ、という印象だ。いや、かなりメーカーさんが頑張ってるのはわかるのだけど。
ただ、このあたりはビックカメラの店員さんが売る前に全部説明してくれたことであって、 納得づくで買った私には、文句言う権利は無い。 ビックカメラの店員さんはかなり正直な人だったなあ、と思う。
あと、自宅の PPTP サーバにはなぜかうまく接続できない。 この辺は今後色々トライしてみようと思う。
新規にプリンタを購入した。 HP の Photosmart 3210 という型番。
HP の直販サイトで、オプションの両面印刷ユニットまで付けて 23,730円という処分価格だったので、ついポチっとしてしまったのだ。
安い割に LAN ポートが付いていて、ネットワークプリンタとして 使えるのが魅力。直接 USB で PC に繋ぐと、何らかのプロトコルで 共有しなきゃならないし、プリンタを使いたいときにはそのPCを 起動しなくちゃならないから。他のメーカの普及価格帯のプリンタには LAN 機能付いてないんだよな。
いかにも在庫処分という値段だった (本体だけなら18,900円だったかな) ので飛びついた人が多かったのか、私の発注後に在庫切れになってしまって、 結局物が届くまで3週間もかかった。なんだかなあ。
ネット上での評判を見るに、色々トラぶりそうなブツではあるけれど、 何しろ安かったので割り切って使うことにする。
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 さんからの情報により誤りを訂正。
本日 AM11:00 ごろから、ルータマシンの不調により gema.luna2.org へのアクセスができなくなっていました。この間に繋ごうとした方、ご迷惑をおかけしました。
自宅に戻ってルータマシン再起動で治っちまったので、原因は不明。 ただし、未だ DNS 解決が遅いので、どこかにトラブルの種が残っているかも。
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 を参照。
DarwinPorts を久々にアップデートしてみた。
すると、gettext がアップデートされていて、再コンパイル
→libintl のバージョンが 3 から 8 に
→古い libintl.3.dylib が消され、リンクしているバイナリが全部動かない
→DarwinPorts からインストールした bash が動かない
という段取りでログイン不可能になってしまった。そりゃあんまりだ! 他にも PHP と wget が動かなくなったよ。
古い共有ライブラリは残しておいて欲しいな、と切に思う。
それと、Mac OS X には ldd が無いので、実行ファイルから リンクしているライブラリを調べる方法が無い。 objdump も無いし。何か代替の方法があるのだろうか。
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 をサーバに利用しているデメリットとして
割り切るしかないだろう。
この Movable Type では、波ダッシュ文字「〜」、もしくは
全角チルダ「~」をソースに入力しても、「?」と表示されてしまう。
たぶん Windows 上のブラウザからは、文字列が Shift_JIS で
プログラムに渡されている。
Perl の処理のどこかの段階で文字コード変換が行われており、
Unicode でのマッピングが統一されておらず、一意な文字コード変換が
できないので、あえて変換をスキップしてしまうのだろう。
仕方がないので、この文字については実体参照で記述する。
波ダッシュ「〜」
〜 (10進表記)
〜 (16進表記)
全角チルダ「~」
~ (10進表記)
~ (16進表記)
この2つの字形が、Mac では同じだったりするんだよなあ。
また、このサイトではトラックバックを受け付けていないので関係ないけど、
日記のタイトルにこれらの文字を使うとトラックバックに問題があるようだ。
Mac OS X に移行してから SquirrelMail を使ってなかったのだが、 あらためて今使ってみると、添付ファイルの日本語ファイル名が 化けてしまった。
php の設定っぽいので、mbstring 周りをごちゃごちゃいじってみる。 結果、以下の設定で化けなくなった。
mbstring.language = Japanese mbstring.http_input = auto
特に文字コードとして SJIS を指定する必要はなさそう…。
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 とか余計なのを入れると、
とたんに失敗する。
今回はメール取り出し側の 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/
にしておくことを忘れずに。
Mac OS X のサーバ環境構築第11弾。
つーか、Postfix で SASL 認証を使うんだから、
Postfix より先にこちらの整備をしとかなきゃならない。
ドキュメント書く順番間違えた…
DarwinPorts の cyrus-sasl2 パッケージ自体は、
postfix の +sasl2 variants の依存関係でインストールされる。
考えてみれば、Cyrus SASL の設定は、
1. sasldb を作ってユーザ登録
2. postfix から利用できるようにする
だけでいいんだった…
Postfix その2の回の記述だけでOKですわ。
なんかクロスサイトスクリプティング脆弱性が
発見されたらしく、バージョン 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 しか
思いつかなかった。もっと良い方法は無いものか。
私の場合、特に以前利用していたプロバイダの
メールアドレスに 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 の
下に自動的に振り分けられる。
ちょっと 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 標準添付)
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 も完成。
次は、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 完成。
さて、技術文書の続き。 その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
で、あっさり動いた。
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 には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点である。
構築メモその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 がインストールできたら、
必要っぽいものをインストールしていく。
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
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のインストール
mac mini に MAMP 環境をインストールして、
Movable Type が動くようにしてみた。