[[How2Computing]]

*Mac OS X Server運用メモ [#q6ff87c4]

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


*Mac OS X Server 10.7 (Lion) [#ve7a56b8]


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

&ref(icon.png);
&ref(admin.jpeg); 

上記アイコンの左がServer.app &br;
App Storeで販売。Lionをインストールしたマシンでこれを起動すると、Lion Server になる。
また、その後は、Lion Serverの設定用アプリケーションとなる。
以下「Server.app」

上記アイコンの右がサーバ管理 (Server Admin Tools 10.7 ) &br;
以下から無料ダウンロードする。
Lion, Lion Serverから起動して、サーバの設定を行う。以下「サーバ管理.app」

http://support.apple.com/kb/DL1419?viewlocale=ja_JP

Server.appとサーバ管理.appの縄張りはややこしい。
それぞれで出来ることと出来ないことがある。
たとえば、webの設定はServer.appじゃないとできない。
DNSの設定はサーバ管理.appじゃないとできない。
メールはどちらでもできる。



** DNSの設定 [#rf4ba048]

&ref(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の設定 [#i4a0c284]

&ref(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がインクルードされるらしい。

**メーリングリストの設定 [#x3870b63]

&ref(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に加えたファイルが消去される。

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

ということになった。


*Mac OS X Server 10.5 (Leopard) [#ta5bacac]

** Mailman の unknown encoding: iso-2022-jp への対策 [#x6ea7f51]

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の情報 [#w6933e74]

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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS