Mac OS X Serverをインストールしたときのメモ書きです。 苦労したところだけをピンポイントにメモしています。
サーバの管理には、以下の二つのアプリケーションを使う。
上記アイコンの左がServer.app
App Storeで販売。Lionをインストールしたマシンでこれを起動すると、Lion Server になる。
また、その後は、Lion Serverの設定用アプリケーションとなる。
以下「Server.app」
上記アイコンの右がサーバ管理 (Server Admin Tools 10.7 )
以下から無料ダウンロードする。
Lion, Lion Serverから起動して、サーバの設定を行う。以下「サーバ管理.app」
http://support.apple.com/kb/DL1419?viewlocale=ja_JP
Server.appとサーバ管理.appの縄張りはややこしい。 それぞれで出来ることと出来ないことがある。 たとえば、webの設定はServer.appじゃないとできない。 DNSの設定はサーバ管理.appじゃないとできない。 メールはどちらでもできる。
DNSは、Server.appから設定はできない。 サーバ管理.appを使う。
ただし、ときどきおかしくなる。GUI画面での設定が、テキストの設定ファイルに正しく反映できないことがある。テキスト設定ファイルが正しくないと、それまで入力した設定が全部消去されることもある。 最初の大まかな設定は、サーバ管理.appで行い、その後はテキスト設定ファイルと見比べながら、 行うのがよい。
DNSの設定ファイルは、/etc/named.conf である。 これを見ると、ゾーンごとに内容を記述したテキストファイルが作られるようである。 たとえば、siio.jpというゾーンの設定なら、
/var/nameddb.siio.jp
に設定が書かれている。そこでこのファイルをエディタで開いて、
orange.siio.jp. 10800 IN A 192.168.108.3 lemon.siio.jp. 10800 IN A 192.168.108.4 apple.siio.jp. 10800 IN A 192.168.108.7
などと書き加えていく。 サーバ管理.appで加えるのも可能だが、何かの拍子に間違った情報が書き込まれると、 サーバ管理.appで設定が表示されなくなってしまう。
Server.appから行う。 apache2がインストールされる。 httpd.confなどの設定ファイルは
/etc/apache2
の中にある。 httpd.confがメインの設定ファイルで、 場合によっては他のファイルをインクルードしている。 特に、
<IfDefine WEBSERVICE_ON> Include /etc/apache2/sites/*.conf </IfDefine>
とhttpd.confの最後のほうに書かれているように、
/etc/apache2/sites
の中の*.confがインクルードされるらしい。
メーリングリストは、mailmanが動く。 メーリングリストの設定はサーバ管理.appで行う。 メールの設定は、Server.appでもサーバ管理.appでも行えるが、 Server.appでは細かい設定ができないし、メーリングリストも設定出来ない。
ただし、サーバ管理.appでも、 メーリングリストとメンバーの作成/追加/削除ができるだけである。 mailmanのそれ以外の細かい設定はwebから行う。 (この状況は10.6以前のMac OS Xサーバでも同じ。)
webは、http://<ホスト名>/mailman などのURLで行う。 このURLは、
/etc/apache2/httpd_mailman.conf
がhttpd.confから呼び出されれば、有効になる。 調べてみると、10.6以前ではhttpd.confのなかから以下のようにhttpd.mailman.confを呼び出していた。
#### For Mac OS X Server: Uncomment this line to enable web-based #### configuration of mailman: ## Include /etc/apache2/httpd_mailman.conf
しかし、サーバ管理.appでも、Server.appでも、この設定を行ってくれない。 ターミナルを使って手作業で設定するしかない。
とはいえ、viなどのテキストエディタでhttpd.confに上の設定を書き加えるととんでもないことになる。 Server.appでapacheを起動させたときに、 手動でhttpd関係の変更がされていることがわかると、 手動の変更も、Server.appで行った設定もすべて消去されてしまうようだ。
前期のように、/etc/apache2/sites の中のすべての*.confファイルは実行されるので、 httpd.mailman.conf や、そのシンボリックリンクを、 sitesディレクトリに入れておけば良いと思うかもしれない。 しかしこの変更も、Server.appに見破られてしまい、sitesに加えたファイルが消去される。
ということで、解決策は、
ということになった。
Mac OS X Server 10.4のときは,何の苦労も無くメーリングリストを運用できていた. けど,10.5に変更したら動かなくなってしまった. しばらくあきらめていたけど,もう一回トライしてみた.
Mac OS X Server 10.5のメールサーバの設定はできているようで, 通常にメールは受信できる.しかし,メーリングリストの配信をしてくれない. メーリングリスト_エラーのログを見ると,
Apr 28 12:08:37 2008 (124) Uncaught runner exception: unknown encoding: iso-2022-jp Apr 28 12:08:37 2008 (124) Traceback (most recent call last): File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/Mailman/Queue/Runner.py", line 112, in _oneloop File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/Mailman/Queue/Runner.py", line 170, in _onefile File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/Mailman/Queue/OutgoingRunner.py", line 73, in _dispose File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/Mailman/Handlers/SMTPDirect.py", line 132, in process File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/Mailman/Handlers/Decorate.py", line 177, in process File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/pythonlib/email/MIMEText.py", line 37, in __init__ File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/pythonlib/email/Message.py", line 246, in set_payload File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/pythonlib/email/Message.py", line 282, in set_charset File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/pythonlib/email/Charset.py", line 399, in body_encode File "/BinaryCache/mailman/mailman-126~18/Root/usr/share/mailman/pythonlib/email/Charset.py", line 282, in convert LookupError: unknown encoding: iso-2022-jp Apr 28 12:08:37 2008 (124) SHUNTING: 1209352116.6575439+e5de1702bc6e46e3c23e22efe11dd71a71b84957
のように書かれている.どうも日本語の扱いで失敗しているようだ.
すこしぐぐってみたら,
http://earlybirds.ddo.jp/namahage/inegalog/index.php
http://earlybirds.ddo.jp/namahage/inegalog/forum/topic.php?tid=92&p=0
というサイトでこのエラーの対策法を説明している. python2.5とmailmanの互換性の問題らしい. 症状は酷似しているので,試してみた. MailmanのPythonのソースを一行コメントアウトすれば直るらしい.
ただし,上記のサイトは,Mac OS X Serverではなくて, Mac OS Xに自力でMailmanをインストールする方法を紹介するサイトである. といことで,Mac OS X Serverとはmailmanのインストール場所も違う. そこで探してみたら,Mac OS X Serverの場合は,
/usr/share/mailman/
以下にmailmanがインストールされているらしい. そこで,
/usr/share/mailman/bin/paths.py /usr/share/mailman/cron/paths.py /usr/share/mailman/scripts/paths.py /usr/share/mailman/tests/paths.py
の4種類のファイルを開いて,import japaneseという記述を見つけて, この先頭に#を付けてコメントアウトした. そして,メールサーバを停止/開始した. この結果,無事メーリングリストが復活した.
http://www.magic3.org/sarucast/index.php?Mailman%A4%CE%C0%DF%C4%EA