メイン | 2006年10月 >

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月26日
 ■ MotoGP 日本グランプリ in ツインリンクもてぎ

決勝当日は帰ってすぐに寝てしまい、翌日は何かと忙しかったので、 この文章は翌々日の火曜日に書いている。

宇都宮駅裏 (東口) のホテルにて AM5:30 起床。 30分で準備して、6時にチェックアウト。 宇都宮駅西口発ツインリンクもてぎ行きのバスの時刻は 6:27 であることは昨日下調べ済みだったので、 荷物をコインロッカーに預け悠々と移動。

朝の宇都宮駅西口前。 まさに快晴。

2006-09-24-01.jpg

宿のあった東口は寂しいものだったけど、 正面に当たる西口側は、さすがに県庁所在地だけあって 大きな町だ。

待てども待てどもバスが来ない。 結局最初のバスが来たのは 7:10 ごろ。 客ナメてんのか?JRバス関東。 なんとか座れて、居眠りしつつ現地到着したのが 8:40 ごろ。 途中経路は、国道だけを経由するのではなく、 複雑に曲がっていて覚え切れなかった。

早朝のメインエントランス前。

2006-09-24-02.jpg

台風が逸れたため、強烈に晴れて気持ちが良い。 今回はパドックパスを買ってあるので、レース前の時間帯は まずパドックへ入り込む。

2006-09-24-04.jpg

ピット裏のパドック。 4輪のレースと違って、モーターホームがほとんどなく、プレハブみたいな建物オンリー。 ピットから離れた列のプレハブはライダーの控え室になっているらしく、 ロッシの控え室には人だかりができている。

ちょうど 125cc のフリー走行が終わって、レーサーたちが 帰ってくる時間になった。 125 のチームはピットではなくパドックでメンテをしているので、 走り終えたレーサーが一般人の中をかき分けて走ってくる (!)。

2006-09-24-03.jpg

一応係員の人が笛を吹いて注意を喚起してくれるけど、結構危ない。 が、間近で 125cc レーサーを見られるのだから大興奮だ。

また、 125 や 250 のライダーは普通にそこらを歩いてたりする。 MotoGP クラスのトップライダーなんかはさすがに人垣の向こう側だが、 みんなファンサービスは良い。 僕が見たのはニッキーくらいだけど、結構サインしてあげてた。 あと、ノリックが私服で来てたけど、やっぱりファンに取り囲まれちゃってた。

で、本命の中野さんですが。 間近で見た!すごい人垣になっちゃったけど! しかも5分くらいぶっ続けでサインしてくれてた。さすがファン思いです。 サインペン持ってかなかったのが悔やまれます。

MotoGPクラスのフリー走行は、ピット屋上のフリースペースから 見下ろす形で眺める。

さて、予約した指定席は 90度コーナー前のZ席。 前回来たときはグランドスタンド席で、追い抜きがまったく 見られなかったことを受けて、今回はこのエリアを選んだ。 125 や 250 の表彰式を見られない (タイミング的に 絶対間に合わない) ことを除けば、オーバーテイクを眼前で 見られて実に良い席だ。

125cc のレースは、すでに今季チャンピオンを決めた アルヴァロ・バウティスタと、ミカ・カリオの一騎打ち。

2006-09-24-06.jpg

写真がちょうど看板にかぶっちまった…。 結局 KTM のエンジンパワーのアドバンテージか、ミカ・カリオが 今季チャンピオンをバックストレートでパス、そのまま優勝。

250cc のレースは、青山博一とアレックス・デ・アンジェリスの 息詰まる一騎打ちになった。

2006-09-24-07.jpg

目の前の90度コーナー手前で、KTM のトップスピードと スリップストリームを生かして、青山がデ・アンジェリスを 捉えた瞬間の写真。。 その後も2人の距離はさほど離れず、さらにS字で抜き返される。 再びバックストレートエンドで抜き返し、青山の優勝。 青山博一、表彰台で泣いてたなあ。 今年のヒロシさんはホント凄いというか、化けたと思います。

さて、MotoGP クラス。 しょっぱなで中野さんが順位を落とし、ケイシー・ストーナーが セテと中野さんの前へ。しかしペースが上がらず、セテ・中野さんとも 前を塞がれた格好に。 その間、カピロッシ、メランドリ、ロッシの上位3人はどんどん逃げていく。

ケイシーは結局転倒。無理を重ねていたんだとは思うが、 そんなんだったら前に出てくるなよ!とは中野ファンのわがままか。

その後ロッシがメランドリをパスしたが、その他の順位は変わらず。 最終ラップ、それまで動きの無かった中野さんが、目の前の90度で セテに仕掛けた!

2006-09-24-08.jpg

あー!

セテにドアを閉められ、軽く接触?転倒でサンドトラップへ。 今年のもてぎが終わっちまった…。 レーシングアクシデントの範囲だとは思うけど、今回の件で セテは敵と認識した。 転倒と言ってもさほど激しいものではなく、 中野さんに怪我がなかった様なのは何より。

残念な結果に終わったけど、中野さんのガッツは 確かに受け取りました。 ワイルドカード出場の松戸さんがもう少し 生き残ってくれればなあ、というのも今回の残念な点。

ガックリきたので、表彰式は場内放送で聴くにとどめて、 さっさと帰る。 15:20ごろ、バス停到着。すでに行列が出来ている (!)。 1時間ほど待って、16:20ごろに出発するバスに乗れたのは、 むしろ幸運なほうだろう。 さすがに帰りは道が渋滞しており、バスの進みは非常に遅い。 1時間ほど居眠りして、目が覚めてもまだ着きそうにない。 仕方ないのでニンテンドー DS の FF3 をやって過ごす。 結局2時間ほどかかって、宇都宮駅西口に到着した。

2006-09-24-09.jpg

もう 18:20 と、そろそろ腹が減り始めた頃合い。 昨日は餃子を食べられなかったので、今日は 食べてから帰ることにした。 駅ビルパセオの中の餃子屋が集まっている通りで、 550円のセットを食う。

2006-09-24-10.jpg

あまり焦げてないのに皮はもちもち、パリパリで、 中がジューシーで旨かった。しかも安い。

19:20 発のなすの 280 号で東京へ向かう。 車両は 200 系リニューアル車。 追い越し予定のはやて・こまちが遅れたために、 なすの号もやや遅れて出発、東京まで遅れを持ち越した。

2006-09-24-11.jpg

東京駅に 20:20 ごろ到着。 もう時間も遅いので、そのまま東海道新幹線に乗り継ぐ。 20:30 発ののぞみ 97 号に乗車。 新横浜から大量に自由席車に乗ってきて、 人いきれで暑くて寝苦しかった。

22:11、名古屋に定刻到着。 23:20 ごろ自宅到着。

途中に晩飯の時間をはさんでいるとはいえ、 さすがに7時間の移動は疲れた。 これならバイクで移動してもそんなに疲れは 変わらないんじゃないか。 今回は台風が接近していたのでバイク移動はあきらめた (結局快晴だったけど) が、次回はバイクで来ることにしよう。

2006年09月23日
 ■ 上京&宇都宮へ移動

MotoGP日本GP観戦のため、今週末は 栃木県茂木町へ移動する。

今日は朝寝坊して、AM9:00ごろ自宅を出発。 名古屋10:04発ののぞみ68号で東京へ。 車両はJR西日本B編成。 道中、天気は良かったものの富士山付近だけは曇り。

東京着、途中下車して新橋へ。 友人D氏との昼飯の待ち合わせだ。 しかしD氏は所用にて遅れるとの連絡が入り、 空き時間を利用して近辺を歩く。

旧新橋停車場。

2006-09-23-03.jpg

近代産業の遺構はないがしろにされることが多いのだが、 ここはフェイクにしろ復元された。 良いことだと思う。

ここから中央通りをぶらぶらと北へ。銀座にやってきた。

2006-09-23-02.jpg

銀座伊東屋。大きな文具屋だ。

2006-09-23-04.jpg

東京在住の頃はよく行っていた。 文具見るだけで楽しいような人にとっては宝の山だ。

銀座3丁目、アップルストアと教文館書店。

2006-09-23-05.jpg

アップルストアは、冴えない男にはむしろ敵地。こりゃだめだ。 教文館はよくアイドルサイン会なんかをやってるので有名。

銀座4丁目から数寄屋橋方面に歩いて天賞堂。

2006-09-23-06.jpg

高級な鉄道模型 (HOゲージとか) をたくさん陳列しているので 目の保養になるw

ここでD氏から連絡が入ったので、新橋へ移動。 カレッタ汐留の地下にある鼎泰豐 (ディンタイフォン) で 遅い昼飯とする。

2006-09-23-07.jpg

小籠包が名物の店で、確かに旨い。 熱いので食べるときは注意しなきゃならないけど。

飯食い終わった時点で午後3時過ぎ。 ここでD氏とは別れて、秋葉へ移動した。

2006-09-23-08.jpg

すんごい人ごみ。祝日だからだろうけど、 歩行者天国の中央通りがお盆時期並みにこんでいる。 メモリースティック→USB変換と、FOMAケーブルを千石電商で購入した。

17:00ごろ、秋葉原駅まで戻って、上野まで2駅移動。 今夜の宿がある宇都宮まで、東北本線の普通列車で移動しようと 考えていたが、2時間もかかるので気が変わって、新幹線に。 17:14発のMaxやまびこ125号に乗車した。 2階建てE4系の1階席に座ったら、防音壁に阻まれて まったく外の景色が見えなかった。ちょっと失敗。

2006-09-23-09.jpg

17:58宇都宮着、すぐに駅裏のホテルにチェックイン。 昼に包み物を食べ過ぎたせいで、餃子を食べる気にならない。 しょうがないのでコンビニ飯で夕食を済ませた。

2006年09月22日
 ■ 浜名湖

今日は舘山寺温泉で会社の研修会。 内容については、あえて語りますまい…。

2006-09-22-01.jpg

会場ホテルからの眺め。 天気は曇りだが、雄大ですばらしい景色。

帰りは路線バスで浜松駅まで出て、 東海道線に名古屋まで乗って帰宅。

久々に浜松の街を通った。 結構昔の記憶と違っていて驚いた。 駅内部は改装中でわけわからんし。

夜の駅前バスターミナルから眺めたアクトタワー。

2006-09-22-02.jpg

結構ロマンチック。 横に居るのが同僚しゅがさんでなく、女の子だったらねぇw

 ■ 毒ジュース

毒ジュース好きで、日々色々漁ってる私です。

昨日木曜日の毒ジュース。

2006-09-21-01.jpg

セブンイレブンで売ってる乳酸菌飲料。 強いてたとえるなら、ヤクルトジョアを数倍に濃縮した感じの味。 飲むとのどが渇きます。

あ、毒ジュースは褒め言葉ですよ。

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

で、あっさり動いた。

 ■ 台風のせいで…

ひとまず、技術文書はひとやすみ。

結局3連休だというのに、一度もバイクに乗れず。 フラストレーション溜まるなあ。 明日からは晴れらしいし。 しかも来週末はまた天気悪いらしいし。 コレは何か?法律で週末は雨って決まってんのか?

しょーがないので去年の今頃の写真を載せとこう。 旧東海道、藤川宿に行ったときの写真。

2006-09-19-01.jpg

古い建物は癒されるねぇ。

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 が動くようにしてみた。