How2Computing

Mac OS X Server運用メモ

Mac OS X Serverをインストールしたときのメモ書きです。 苦労したところだけをピンポイントにメモしています。

Mac OS X Server 10.7 (Lion)

サーバの管理には、以下の二つのアプリケーションを使う。

icon.png admin.jpeg

上記アイコンの左が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の設定

admin.jpeg

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で設定が表示されなくなってしまう。

webの設定

icon.png

Server.appから行う。 apache2がインストールされる。 httpd.confなどの設定ファイルは

/etc/apache2

の中にある。 httpd.confがメインの設定ファイルで、 場合によっては他のファイルをインクルードしている。 特に、

   <IfDefine WEBSERVICE_ON>
       Include /etc/apache2/sites/*.conf
   </IfDefine>

とhttpd.confの最後のほうに書かれているように、

/etc/apache2/sites

の中の*.confがインクルードされるらしい。

メーリングリストの設定

admin.jpeg

メーリングリストは、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に加えたファイルが消去される。

ということで、解決策は、

  1. /etc/apache2/sitesの中にhttpd.mailman.conf や、そのシンボリックリンクを入れる
  2. でもServer.appではapacheの再起動を絶対行わない
  3. apacheの再起動は、sudo apachectl restartコマンドで行う

ということになった。

Mac OS X Server 10.5 (Leopard)

Mailman の unknown encoding: iso-2022-jp への対策

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という記述を見つけて, この先頭に#を付けてコメントアウトした. そして,メールサーバを停止/開始した. この結果,無事メーリングリストが復活した.

Mailmanの情報

http://www.magic3.org/sarucast/index.php?Mailman%A4%CE%C0%DF%C4%EA


添付ファイル: fileadmin.jpeg 1652件 [詳細] fileicon.png 1581件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-07-28 (木) 10:58:53 (2308d)