Mの更新(Mountain Lion OSX10.8サーバ) その18 ユーザパスワードの変更
ユーザが自分でパスワードを変更できる。
Server.app を起動して、Webサイト のページで サーバWebサイト(SSL) を選択し鉛筆アイコンをクリックする。下の方の 「ユーザが自分のパスワードを変更をすることを許可」 にチェックを入れる。
https://[ドメイン名]/changepassword/ にアクセスする。
このセキュリティ証明書は信頼できません とでてくるが このまま続行 とする。証明書を取得していないから当然だ。
ログイン画面になるから ユーザ名とパスワードを入力し、入力が正しいと パスワードを変更できる画面になる。
$$$$$$$$$$ 以下はメモ $$$$$$$$$$$$$
プロファイルの変更できてない。証明書とかを発行していないからだろう。
https://[ドメイン名]/mydevices/
証明書の発行について
http://support.apple.com/kb/TS4326?viewlocale=ja_JP
「Mountain Lion Server」カテゴリーアーカイブ
OSX10.8サーバ その17 ~(チルダ)なしにする
2019.3.22 加筆。#######以下のことをまとめて短く記載する。
新規ユーザにWebページを提供する。
/Users/[ユーザ名]/ に
Sites というdirectory を作り、 test と1行エディタで書いて、index.html というファイル名にしてファイルを保存する。
sh-3.2# cd /Library/Server/Web/Data/Sites
で
sh-3.2# ln -s /Users/[ユーザ名]/Sites [ユーザ名]
としてエイリアスを作成する
lrwxr-xr-x 1 root wheel 19 3 22 14:28 [ユーザ名] -> Users/[ユーザ名]/Sites
というリンクができる
sh-3.2# cd /private/etc/apache2/extra に移動し
sh-3.2# cat httpd-userdir.conf を確認する。
httpd-userdir.conf に
Alias /[ユーザ名] /Users/[ユーザ名]/Sites/
の行を加える
apache2 を再起動
sh-3.2# /usr/sbin/apachectl restart
http://[ドメイン名]/[ユーザ名]
で index.html が開くことを確認する。
チルダ入でも同様であることを確認する。
##########################################
#Could be accessed to Sites without ~.AliasMatch ^/([^/]+)/(.*) /Users/$1/Sites/$2AliasMatch ^/([^/]+) /Users/$1/Sites/
#Could be accessed to Sites without ~.Alias/hoge Users/hoge/Sites/
を書き加える。これだとURL の末尾に / がなくてもかまわない。これは以下の2)と同じことだ。
2)は;
サーバのデフォルトのページが /Library/Server/Web/Data/Sites/Default 内のページだからここにエイリアスファイルを置く方法だ。このDefault dirctory で;
$ ln -s Users/[ユーザ名]/Sites [ユーザ名]
とする。ユーザ毎にエイリアスを作成する必要がある。
確認すると、hoge というユーザについては;
$ pwd
/Library/server/web/data/sites/default
$ ls -al
lrwxr-xr-x 1 root wheel 17 Sep 9 09:37 hoge -> /Users/hoge/Sites
と確認される。この場合も、URL の末尾に / がなくても構わない。~をつけても問題ない。owner はroot のままで構わない。
どっちにしろ、ユーザ毎の.conf を作る必要があるので、2)の方法でいいのではないだろうか。場合によっては同一ユーザのSites内のファイルにシンボリックリンクを張ることもできるからな。ユーザの数が少ないので2)でやることにする。これまでと、同じだからだ。管理者は「じじい」だから保守的なのだ。
追記: 2)はうまくいかないときがある。なぜかCGIが~があるといいのだが~がないと、Internal server errorとなりlog をみると、このdirectoryはExecCGIが有効でないとなる。したがって1)の
/private/etc/apache2/extra/httpd-userdir.conf にユーザ毎に
Alias/hoge Users/[ユーザ名]/Sites/ を書き加えることにした。
OSX10.8サーバ その16 ssh
HeartBeat(KeepAlive)で秒数を設定する。
OSX10.8サーバ その15 Webサーバその2
Mの更新(Mountain Lion OSX10.8サーバ) その15ーWebサーバ
各ユーザがWeb公開を行うための設定。
これまでは、http://[ドメイン名]/[ユーザ名]で /Users/[ユーザ名]/Sites のファイルが公開できていたわけだ。
ユーザ毎のバーチャルホストを建てることもできそうだがそんな面倒なことはしたくない。従来通りにしたい。用意されたファイルの構成がなかなか理解できず、苦労した。
1) httpd_server_app.confの書き換え
/library/server/web/config/apache2/httpd_server_app.conf の
# User home directories
#Include /private/etc/apache2/extra/httpd-userdir.conf
のInclude の行のコメントを外す。
# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf
だな。これでhttpd-userdir.conf が有効になる。
2) /private/etc/apache2/extra/httpd-userdir.conf の書き換え
ここには
# Users might not be in /Users/*/Sites, so use user-specific config files.
とあるので、個々のユーザのサイトの設定を書くために
Include /private/etc/apache2/users/*.conf
の行を加える。
ユーザ毎のサイトの設定ファイル httpd-[].conf を/private/etc/apache2/users/内に置いて有効にするためだ。
さらに、ここにエイリアスを作って~なしにする。たとえば;
http://example.com/~hoge/ の~がなくてもいいようにするために
Alias /hoge /users/hoge/Sites
の行を書き加える。
/private/etc/apache2/users/httpd-hoge.conf
各ユーザごとに必要となる。
[追記]
Server.appでWebサイトの指定を/Library/Server/Web/Data/Sites/Default にしてこのなかにシンボリックファイルを置けば(その1参照)~がなくてもいいことになる。
3) ユーザ毎の.confを作成する
/private/etc/apache2/users にある sample.conf を httpd-[ユーザ名].conf として同じdirectoryにコピーし、できたhttpd-[ユーザ名].conの中身を
<Directory “/Users/[ユーザ名]/Sites/”>Options Indexes MultiViewsAllowOverride NoneOrder allow,denyAllow from all</Directory><Directory “/Users/[ユーザ名]/Sites/cgi-bin/”>Options +ExecCGI -Indexes -MultiViews</Directory>
と書き換える。
.htaccess を有効にするには
AllowOverride None → AllowOverride All
Option に書くのは
All Multiviews を除くすべて許可
None すべて不許可
ExecCGI CGI の許可
FollowSymLinks シンボリックリンクを許可
SymLinksIfOwnerMatch オーナーならシンボリックリンクを許可
Includes SSI を許可
IncludesNOExec exec を除く SSI を許可
Indexes index.htmlがないときファイル一覧表示を許可
Multiviews コンテントネゴシエーションを使用できる
+をつけると上位のdirectoryでの指定に加えてその機能を加える。-は上位のdirectoryでの指定からその機能を削除することになる。
これでhttp://[ドメイン名]/[~ユーザ名] でページが見えることになる。
ユーザは自分のdirectory(フォルダ)内にSitesというdirectory(フォルダ)を作成するとこの中身がWebページとして公開される。CGIを行いたいときはSitesの中にcgi-binというdirectory(フォルダ)を作成しCGIプログラムを書いたファイルを置く。
結局管理者のページに関しては/private/etc/apache2/usersにhttpd-hoge.confを作り、内容を;
<Directory “/Users/hoge/Sites/”>Options Indexes MultiViews Includes FollowSymLinksAllowOverride AllOrder allow,denyAllow from all</Directory><Directory “/Users/hoge/Sites/cgi-bin/”>Options +ExecCGI -Indexes -MultiViews</Directory>
とした。つまりSites内では.htaccess が有効で、ファイル一覧が可、Multiviewsが有効、SSI を許可、シンボリックリンクを許可、この下のcgi-bin では.htaccessが使えて、ファイル一覧が不可、Multiviewsが不可、SSI を許可、シンボリックリンクを許可、CGI実行許可ということになる。Order allow,deny Allow from all は必要ないので削除だと思う。
おしまい。
要するにMountain Lion ServerではApache2 が参照する .conf ファイルはm通常のLinuxサーバが/etc/httpd/httpd.conf 等を参照しているのとはちがって、httpd_server_app.conf なのだ
そこで、各ユーザのサイトも有効にするための経路は;
/library/server/web/config/apache2/httpd_server_app.conf (ともかくここが最初、有効な.confを定義する)
↓
/private/etc/apache2/extra/httpd-userdir.conf (これも有効な.conf となったので、必要に応じて改変する)
↓
/private/etc/apache2/users/*.conf (ユーザ毎の .conf を作成してユーザ毎の設定を書く)
という順なのだ。
しかも、/Users/*/Sitesのような定義は使うなということなので、ユーザ毎の .conf を作成することになったのだ。ユーザ数が少ないので問題ないのだ。
面倒だな。似たようなdirectoryの名前なので途中で何回も混乱した。
ん?CGIが動かない。原因調査中。
$$$$$$$$以下は失敗した試行$$$$$$$$$$$$$$$$$$$$$$
Mac のターミナルからリモートでssh接続していると、ちょいとトイレにいったりすると切れてしまう。そこで
/etc/ssh_config の一番下に
ClinerAliveInterval 30
ClientAliveCountMax 3
と記入した。
さらに使っているMacBookAirの自分のdirectoryの.ssh directory にconfig というファイルを作成し
ServerAliveInterval 30
ServerAliveCountMax 3
と書いてみた。どうなるだろ。30秒=毎に3回パケットを送り応答がないと切断するというわけだつまり90秒だ。いいのかな?
端末のほうの記述だとsshがエラーとなってうごかない。
失敗。
URLに~をつけたくない場合は
/Library/Server/Web/Data/Sites/Default でシンボリックリンクを作成する。
$ sudo ln -s Users/[ユーザ名]/Sites [ユーザ名]
[ユーザ名] -> Users/[ユーザ名]/Sites
というシンボリックリンクができる。
だめだ。どこに書いたらいいのか調査中。
/library/server/web/config/apache2/httpd_server_app.conf
が最初に読み込まれるファイルだから、このファイルに
#Users Sites config files
Include /private/etc/apache2/users/httpd-users.conf
と加筆し、
/private/etc/apache2/users/httpd-users.conf
に/private/etc/apache2/users/sample.confの内容が以下だから
/private/etc/apache2/users/sample.conf
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
Options +ExecCGI -Indexes -MultiViews
これをコピーしてhttpd-users.confというファイル名にして
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
Options +ExecCGI -Indexes -MultiViews
と変更したがだめである。
/private/etc/apache2/extra/httpd-userdir.confに
# Users might not be in /Users/*/Sites, so use user-specific config files.
という記述があるから、/Users/*/Sitesは使えないようだ。
さらに /private/etc/apache2/extra/httpd-userdir.confには
Include /private/etc/apache2/users/*.conf
とかいてあるから
/library/server/web/config/apache2/httpd_server_app.conf
で
Include /private/etc/apache2/extra/httpd-userdir.conf
として
/private/etc/apache2/extra/httpd-userdir.confに
Include /private/etc/apache2/users/*.confとあるので
/private/etc/apache2/usersにユーザ毎の.confをつくるのがいいらしい。
OSX10.8サーバ その14 phpMyAdmin
なんだか、できたようだけど、まだわからない。
[追記]
目次から
33.Macports—パッケージのインストール道具
34.phpMyAdmin—mcrypt のインストール
を参照する。
OSX10.8サーバ その13 MySQL
Mの更新(Mountain Lion OSX10.8サーバ) その13ーMySQL
Apple はデータベースのMySQL をやめちゃったらしい。 WordPressでこれまでブログを作っていたのでMySQLのほうがいい。そこでインストールする。 Install MyAQL on Mpuntain Lionにしたがった。10.6 用ので動くらしい。 dev.mysql.com/downloads/mysql でMac OS X ver. 10.6 (x86, 64-bit), DMG Archive(mysql-5.5.27-osx10.6-x86_64.dmg)をダウンロードする。
ユーザ登録を求められるが、下の≫ No thanks, just start my download! をクリックすればいい。 ダブルクイックして解凍し、mysql-5.5.27-osx10.6-x86_64.pkg のパッケージをダブルクリックでインストールしようとすると、unidentified developer のだからだめだといっている。 右クリックでこのアプリケーションで開くから インストーラ.app を選択する。 「ホントにいいか」というので Open をクリックして、あとは普通のパッケージからのインストールを実施する。gatekeeperで設定するとダブルクリックでできるようになるけど、何回もこのサイトからダウンロードするわけではないので、この方法でいいのだ。
同様にMySQLStartupItem.pkgもインストールする。これはサーバ起動時にMySQLも起動させるため。
MySQL.prefPane も同様にインストールする。これは システム環境設定のアイテム。
使う前に設定することがあるというプロンプトがでてくるので、あんただけあるいはすべてのユーザも使えるようにするかのどっちかを選ぶ。 システム環境設定のOther にMySQLのボタンができている。Start/Stop をコントロールできるわけだ。またAutomatically Start MySQL Server on Startup にチェックを入れるとサーバ 起動時に起動させる/させないの設定ができる。
どこになにがインストールされたか等はReadMe.txtを読めばいい。
システム環境設定のMySQLからMySQLを起動しておいて、ターミナルを起動する。自分のdirectoryにいるはずだから
.bash_profile というファイルを作り、中に
export PATH=$PATH:/usr/local/mysql/bin
の1行を書く。
さらに$ mysql -u root と入力してMySQLに入り、パスワードを設定する。
hoge:~ hoge$ mysql -u rootWelcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 4Server version: 5.5.27 MySQL Community Server (GPL)Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
GRANT ALL ON *.* TO ‘root’@’localhost’ IDENTIFIED BY PASSWORD ‘xxxxxx’ WITH GRANT OPTION;
mysql> GRANT ALL ON *.* TO ‘root’@’localhost’ IDENTIFIED BY ‘xxxxxx’ WITH GRANT OPTION;Query OK, 0 rows affected (0.00 sec)
mysql> quitBye
hoge:~ hoge$ sudo mkdir /var/mysqlhoge:~ hoge$ sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
MySQL をマネージするのにSequel Proが薦められているいるけど、まだインストールしていない。
OSX10.8サーバ その12 WorkGroupManager
Mの更新(Mountain Lion OSX10.8サーバ) その12 WorkGroupManager
Apple が提供しているサーバ管理ツールやワークグループマネージャをインストールしておくのがいいらしい。
ワークグループマネージャ10.8はダウンロードしてできたが、サーバ管理ツールの10.8バージョンはまだない。
なにかまだ理解できていないのだが、サーバアプリ(Server.app)とサーバ管理ツール(Server Admin Tools)とワークグループマネージャ(Workgroup Manager)は三位一体のようで、そろってないとコマンドラインから設定するしかない。
なくても基本的にはUnixなんだから….でも簡単に設定できるのが欲しい。
ファイルの依存関係が理解できていないので、コマンドラインからだけでは面倒するぎる。そもそも、ないものをインストールする―Mailmanのように―のならコマンドラインからやらざるを得ないのだが….
Webメールがない。Squirell Mail かRoundcube をインストールせにゃあかん。うへ…..
アップルのOSX Server Product Overview(June 2012) には
Dynamic Web Content
OS X Server is extremely flexible, so you can add dynamic content for more interactive websites and applications. Web Server supports dynamic content generated by Server Side Includes, PHP, Apache modules, and CGIs. OS X Server even makes it easy to install third-party web apps such as Mailman, Roundcube, Moodle, WordPress, Druple, and others.
だって。そんなのわかっているわい!!ただソフトなんだから初めから用意しとけ、くそ。
最終的には MailmanやRoundcube のインストールを行い動かした。固定ページのサーバ構築の記録を見てちょうだい。
OSX10.8サーバ その11 WebDAV
Mの更新(OSX10.8サーバ) その11ーWebDAV
まだWebページができていないわけだが、ちと別なことを。
htmlファイルを作製してアップロードするのはこれまではFTPで行ってきた。管理者は『じじい』だから、この方法に慣れている。しかし、FTPは途中にファイヤーウオールがあると(あるのが普通だ)なかなか面倒である。ポートが20、21、1024以上とか2つを使うのでファイヤーウオール(たいていはルータのことだ)の設定で苦労した経験がある。またセキュリティも甘いようだ。
大昔、自宅にようやくケーブルネットが引かれて、サーバを作くれる環境になったとき、サーバを建てたら、すぐにポートスキャンする奴とか、FTP接続をブルートフォースでアタックして来た奴がいた。ip addressを調べたら、同じケーブルネット内のやつだった。ケーブル会社経由でクレームをつけたら止まった。ケーブル会社は結果を当然教えてくれなかったけど、近所の奴なのは間違いない。当時は、まだ加入者が少ないちっちゃなスケールのネットだったはずで、このネット内に自宅サーバを建てる奴なんてほとんどいなかったはず。住宅環境から考えて、大学か研究所の教員/職員だ。彼らの息子が遊んでいるとはあまり考えにくい。彼らの息子のほとんどは、まだ中学生以下だからだ。
閑話休題。FTPに代わるのがWebDAVで、セキュリティもしっかりしているらしいし、http でポート80を使うのでファイヤーウオールを気にしなくていい。ポート80を閉じたファイヤーウオールなんか普通ないからな。Webページ作製ソフトのDeamweaver もWebDAVでできるようだ。iPADとの連携も簡単にできそうだ。自分だけののdropboxを作れるだろう。iCloudてなんかいやなんだよね。管理者が勝手に読むことができるからな。
Mountain Lion Server の場合は、ファイルの共有と呼ばれている機能でWebDAVの設定ができる。
Webページではなく他のパソコンとの間でファイルを共有するときは、別途フォルダを作り、アクセス権を設定すればいいわけだ。ただし、このサーバがルータの中にあってprivate ip address で運用されているときは、当然、そのサブネット内だけでしか使えない。
問題は、複数のユーザがこのサーバでWebサイトを作って利用するとき、各ユーザのdirectory 内のSites をWebページを置く場所としたいので、共有ポイント(フォルダ)が同一のSites という名前にならざるを得ない。そこで異なるユーザのSitesフォルダを共有ポイントにすると、このファイル共有設定では、作った順にSites, Sites-1, Sites-2 となってしまう。名前という入力欄があって、変更するが、この変更はどこにも反映されない。共有ポイントを開いて初めてわかる。なってこった。
クライアント機がMacの場合、この共有ポイントへのアクセスは、ファインダーで、メニューから「移動」「サーバへ接続…」(あるいはCommand + K )で、接続先にhttp*//[ip addressまたはドメイン名] とし、あるいは特性のフォルダを指定したければ /[フォルダ名] を続けて
接続をクリックする。ID 、パスワードはサーバでののユーザ名、パスワードを入力すると、そのユーザがアクセス可能なフォルダのみが見えるネットワークドライブがデスクトップにできる。このとき表示されるフォルダ名は、自動的に振られた、Sites-1とかSites-2 となってしまう。折角名前を付けたのだから hoge-Sites とかになるようになっていたらいいのに。
クライアント機がWindows の場合でもできるはずだが、テストは後ほど。
OSX10.8サーバ その10 Webサーバその1
OSX10.8サーバ その9 Mailman の設定まとめ
Mountain Lion Server(OSX10.8)その9 Mailman の設定まとめ
Mountain Lion (OSX10.8) Server へのメーリングリストMailman のインストールと設定のまとめ。
いろいろやって、ついにできたので、この時点でまとめる。
Home / OS X Mountain Lion Mailman Mailing List に基本的に従うが、これに書いていない部分を加える。
準備;
★Xcode (この時点で 4.4) をダウンロードしXcode command line toolsをインストールしておくこと。
★Mailman をダウンロードする。この時点では2.1.15だ。
★/usr/local とその中にmailmanというdirectoryがないから作る。ここからは面倒なのでrootになって実施する。
sh-3.2# mkdir /usr/local
sh-3.2# mkdir /usr/local/mailman
★ダウンロードし解凍したmailman-2.1.15を/usr/local/mailmanへ移動する。
mailman-2.1.15をデスクトップに移して
デスクトップで
sh-3.2# cp mailman-2.1.15.tgz /usr/local/mailman/mailman-2.1.15.tgz
としてコピーし、/usr/local/mailmanに移動し
sh-3.2# tar zxvf mailman-2.1.15.tgz
で解凍した。
/usr/local/mailman/mailman-2.1.15ができる。
/usr/local/mailman で
sh-3.2#chgrp mailman .
sh-3.2#chmod a+rx,g+ws .
を実行しておく。
実行する前
sh-3.2# ls -al
total 16544
drwxrwsr-x 4 root _mailman 136 8 17 13:38 .
drwxr-xr-x 3 root wheel 102 8 16 09:31 ..
drwxr-xr-x 32 root _mailman 1088 8 17 13:38 mailman-2.1.15
-rw-r–r–@ 1 root _mailman 8468107 8 17 13:37 mailman-2.1.15.tgz
実行したあと
sh-3.2# ls -al
total 16544
drwxrwsr-x 4 root _mailman 136 8 17 13:38 .
drwxr-xr-x 3 root wheel 102 8 16 09:31 ..
drwxr-xr-x 32 root _mailman 1088 8 17 13:38 mailman-2.1.15
-rw-r–r–@ 1 root _mailman 8468107 8 17 13:37 mailman-2.1.15.tgz
なんも変化していないから、やらなくてもいいかも。
★インストールする。
/usr/local/mailman/mailman-2.1.15のdirectoryで
sh-3.2# ./configure
とするとなんやら出てくるが終わったら、さらに
sh-3.2# make install
とするとさらにセットアップの過程が出てくる。
0x0 から 0x2010ff0 へアップグレード
古いソースファイルを削除中
リストがありません == 何も実行せずに終了します
多分、いいんだろう。
usr/local/mailman
にもどってパーミッションのチェックを行う。
sh-3.2# bin/check_perms -f
警告: 限定公開保存書庫ディレクトリが other-executable (o+x) に
なっています. あなたのシステムのシェルユーザがこの保存書庫
を読むことができます. インストールマニュアルには, これを
どうしたら修正できるか書いてありますので, 参考にしてください.
問題があります: 75
修正するには -f オプションをつけて _mailman か root の権限で実行してください
で再度 実施する。
sh-3.2# bin/check_perms -f
警告: 限定公開保存書庫ディレクトリが other-executable (o+x) に
なっています. あなたのシステムのシェルユーザがこの保存書庫
を読むことができます. インストールマニュアルには, これを
どうしたら修正できるか書いてありますので, 参考にしてください.
問題ありません
ということでインストールはおしまい。
sh-3.2# ls -al
total 16544
drwxrwsr-x 22 root _mailman 748 8 17 13:45 .
drwxr-xr-x 3 root wheel 102 8 16 09:31 ..
drwxrwsr-x 72 root _mailman 2448 8 17 13:45 Mailman
drwxrwsr-x 4 root _mailman 136 8 17 13:45 archives
drwxrwsr-x 41 root _mailman 1394 8 17 13:45 bin
drwxrwsr-x 13 root _mailman 442 8 17 13:45 cgi-bin
drwxrwsr-x 12 root _mailman 408 8 17 13:45 cron
drwxrwsr-x 4 root _mailman 136 8 17 13:45 data
drwxrwsr-x 9 root _mailman 306 8 17 13:45 icons
drwxrwsr-x 2 root _mailman 68 8 17 13:45 lists
drwxrwsr-x 2 root _mailman 68 8 17 13:45 locks
drwxrwsr-x 2 root _mailman 68 8 17 13:45 logs
drwxrwsr-x 3 root _mailman 102 8 17 13:45 mail
drwxrwsr-x 36 root _mailman 1224 8 17 13:44 mailman-2.1.15
-rw-r–r–@ 1 root _mailman 8468107 8 17 13:37 mailman-2.1.15.tgz
drwxrwsr-x 39 root _mailman 1326 8 17 13:45 messages
drwxrwsr-x 2 root _mailman 68 8 17 13:45 pythonlib
drwxrwsr-x 2 root _mailman 68 8 17 13:45 qfiles
drwxrwsr-x 15 root _mailman 510 8 17 13:45 scripts
drwxrwsr-x 2 root _mailman 68 8 17 13:45 spam
drwxrwsr-x 40 root _mailman 1360 8 17 13:45 templates
drwxrwsr-x 19 root _mailman 646 8 17 13:45 tests
sh-3.2#
となっていた。アクセス権はよさそうだ。
★apache2 がmailman を使うために、httpd-mailman.confを作る
/private/etc/apache2/extra/ で
httpd-mailman.confというファイルを作る。
中身は
# Config file for linking the mailman mailing list manager to MacOSX Server Web Server.
#
ScriptAlias /mailman/ “/usr/local/mailman/cgi-bin/”
Alias /pipermail/ “/usr/local/mailman/archives/public/”
Alias /icons/ “/usr/local/mailman/icons/”
Options FollowSymLinks MultiViews Indexes
AllowOverride None
Order allow,deny
Allow from all
だ。
★上のファイルをapache2 が読むことを指定するため、httpd_server_app.confに加筆する
/Library/Server/Web/Config/apache2 に行って
httpd_server_app.confのバックアップを作って
sh-3.2#cp httpd_server_app.conf httpd_server_app.conf,20120819
おいて、書き換える。
一番下のほうに
# Secure (SSL/TLS) connections
というコメント部分があるから、この直前に
# Mailman config files
Include /private/etc/apache2/extra/httpd-mailman.conf
の2行を書き加える。
★Postfixをメーラーとして指定する
/usr/local/mailman/Mailman
内のmm_cfg.py を
sh-3.2#cp mm_cfg.py mm_cfg.py,20120819
としてコピーしておいて、
mm_cfg.py の一番下に
MTA = ‘Postfix’
を書き加えた。
★aliases を作る。
/usr/local/mailman で
sh-3.2#bin/genaliases
sh-3.2#chown mailman:mailman data/aliases*
sh-3.2#chmod g+w data/aliases*
を実行する。
/usr/local/mailman/data
にaliases とaliase.db
が作成される。上のコマンドだとaliases と daliases.db のオーナーはmailman になるはずだが、最終的にできたのを見ると、
-rw-rw—- 1 root _mailman 1088 8 31 17:51 aliases
-rw-rw—- 1 _mailman _mailman 16384 8 31 17:51 aliases.db
となっている。試行錯誤のとき、ここに書いた順番でやらなかったからか?owner の mailman と _mailman に違いが分かっていない。オーナー、グループともmailman (_mailman)にする。パーミッションは両方とも 660 だな
★Postfix がmailmanを使うために。
/Library/Server/Mail/Config/postfixでmain.cfに加筆する。
main.cfはmain.cf,20100819 とコピーしておいた。
main.cf の一番下に
owner_request_special = no
alias_maps = hash:/etc/aliases,hash:/usr/local/mailman/data/aliases
の2行を書き加える。
unknown_local_recipient_reject_code = 550 はすでに記述されていた。
hash:/etc/aliases は使わない?のでいらないのかも。
参考にしたページではrecipient_delimiter = +も加えることになっていたが、すでにあった。
★Mailmanのパスワードの設定
sh-3.2#/usr/local/mailman/bin/mmsitepass xxxxxx
と実行すると パスワードを変更しました. と返ってきた。
★新しいメーリングリストを作る。
/usr/local/mailman で
sh-sh-3.2# bin/newlist example
リスト管理者のメールアドレスを入力してください: hoge@example.com
example の初期パスワード:
Enter を押して example の管理者にメール通知する…
mailman をスタートさせたら、mailmanというリストを作れといってくるので作った。
sh-3.2# bin/mailmanctl start
サイトリスト名がありません: mailman
sh-3.2# bin/newlist mailman
リスト管理者のメールアドレスを入力してください: hoge@example.com
mailman の初期パスワード:
Enter を押して mailman の管理者にメール通知する…
sh-3.2# bin/mailmanctl start
Mailman のマスター qrunner を起動します
sh-3.2#
で多分いいんだろう。mailman というリストが必要らしい。
[追記] 2013.4.5
/usr/local/mailman/dataで確認するとaliases.dbのパーミッションがおかしい。ちゃんと660にしたはずだが…
-rw-rw—- 1 _mailman _mailman 35613 4 5 08:56 aliases
-rw-r—– 1 _mailman _mailman 49152 12 26 15:43 aliases.db
# chmod g+w aliases.db とする。
-rw-rw—- 1 _mailman _mailman 35613 4 5 08:56 aliases
-rw-rw—- 1 _mailman _mailman 49152 12 26 15:43 aliases.db
そんで
sh-3.2# newaliases
を実行する。
★サーバ起動時にmailmanを起動させる
サーバ起動時にmailmanが起動するようにLaunchDaemons にファイルを加えておく。
/System/Library/LaunchDaemons に行って
org.list.mailmanctl.plist を作り、中身は
<!–?xml version=”1.0″ encoding=”UTF-8″?–>
Debug Disabled
Label
org.list.mailmanctl
Program
/usr/local/mailman/bin/mailmanctl
ProgramArguments
mailmanctl
-s
start
KeepAlive
RunAtLoadAbandonProcessGroup
と書く。おしまい。
http://[ドメイン名or ip address]/mailman/admin にアクセスして新しいリストを作れることを確認し、複数のメールアドレスを登録し、メールを送付できたらおしまい。
サーバを再起動してmailmanが起動していることを確認した。
★昔のサーバにあるリストのコピー・ペースト
/list
/archives
の2つのdirectoryをコピーし、新規のサーバにあるものと入れ替える。
しかし、このままでは http://[ドメイン名]/mailman/admin/ でメーリングリストの一覧がみえない。
/usr/local/mailman で
bin/withlist -l -r fix_url [メーリングリスト名]
を実行するとそのリストが一覧にでてくる。すべてのリストについて実施する必要がある。
これが、わからなくて悩んだ。
★運用につていの説明は、ここに詳しく書いてある。
メーリングリスト管理メモ