「Mountain Lion Server」カテゴリーアーカイブ

OSX10.8サーバ その18 ユーザパスワードの変更

Mの更新(Mountain Lion OSX10.8サーバ) その18 ユーザパスワードの変更

ユーザが自分でパスワードを変更できる。

Server.app を起動して、Webサイト のページで サーバWebサイト(SSL) を選択し鉛筆アイコンをクリックする。下の方の 「ユーザが自分のパスワードを変更をすることを許可」 にチェックを入れる。

https://[ドメイン名]/changepassword/ にアクセスする。

このセキュリティ証明書は信頼できません とでてくるが このまま続行 とする。証明書を取得していないから当然だ。

ログイン画面になるから ユーザ名とパスワードを入力し、入力が正しいと パスワードを変更できる画面になる。

$$$$$$$$$$ 以下はメモ $$$$$$$$$$$$$

プロファイルの変更できてない。証明書とかを発行していないからだろう。

https://[ドメイン名]/mydevices/

証明書の発行について

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

OSX10.8サーバ その17 ~(チルダ)なしにする

Mの更新(Mountain Lion 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 が開くことを確認する。
チルダ入でも同様であることを確認する。
##########################################

各ユーザのページのURLには~(チルダ)をつける必要がある。この~がなくても良いようにするためには;
1) .conf に加筆する
2) デフォルトのトップページのあるdirectory にエイリアスを置く(シンボリックリンクを張る)
という2つの方法がある。
1)は;
/private/etc/apache2/extra/httpd-userdir.conf
#
UserDir Sites のあとに
#Could be accessed to Sites without ~.
AliasMatch ^/([^/]+)/(.*) /Users/$1/Sites/$2
AliasMatch ^/([^/]+) /Users/$1/Sites/
を書き加える。加筆の3行目はURLの最後に / が付いていなくてもOKとするためだ。これだとすべてのユーザに対応できる。
しかし、このままだ とhttp://[ドメイン名] でデフォルトのページが開かない。Forbiddenとなる。
デフォルトのトップページを有効にするためには、これに代わってエイリアスの設定をするのがいいようだ。
Alias /[ユーザ名] Users/[ユーザ名]/Sites/
の行を書き加えるとと可能になる。この場合、ユーザ毎の行を加筆する必要がある。ユーザの数が少なければこちらがいい。この場合、URL の最後に / がなくても問題ない。
したがって、hoge というユーザのためには /private/etc/apache2/extra/httpd-userdir.conf に
#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

Mの更新(Mountain Lion OSX10.8サーバ) その16 ssh
Mac のターミナルからリモートでssh接続していると、ちょいとトイレにいったりすると切れてしまう。そこで
/etc/ssh_config の一番下に
ClinerAliveInterval 30
ClientAliveCountMax 3
と記入した。ClinerAliveInterval 30は30秒ごとに生きているか?と聞くことだ。ClientAliveCountMax 3は3回連続して応答がなかったら、sshd は接続を切り、セッションを終了しちゃうということだ。だからこの設定だと2分未満しかもたない。参考ページ
さらに使っているMacBookAirの自分のdirectoryの.ssh directory にconfig というファイルを作成し
Host *
ServerAliveInterval 60
と書いてみた。こっちは60秒毎にサーバに生きているよと知らせるためだ。
Windowsの場合はTerTermを使っているが、こっちはデフォルトで60秒となっている。これを変更するには SetUp → SSH で
HeartBeat(KeepAlive)で秒数を設定する。
ssh接続はMacのターミナルではそのままアクセスすればいい。
$ ssh [ユーザ名]@[ドメイン名]
だな。$ password: のあとにパスワードを入力すればいい。
TeraTermの場合はドメイン名を入力しSSH2 で接続し、ユーザ名を入力し、チャレンジレスポンス認証を使うで接続してパスフレーズ(パスワード)を入力すればいい。

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 MultiViews
AllowOverride None
Order allow,deny
Allow 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 FollowSymLinks
AllowOverride All
Order allow,deny
Allow 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

Mの更新(Mountain Lion OSX10.8サーバ) その14 phpMyAdmin
http://www.phpmyadmin.net/home_page/downloads.php
から
phpMyAdmin-3.5.2.2-all-languages.tar.gz
をダウンロード
解凍するとphpMyAdmin-3.5.2.2-all-languagesというフォルダになる
このフォルダをphpMyAdminと変えて、/library/server/web/data/sites/default に移す。
$ sudo chown -R nobody:nobody phpMyAdmin/
でownerとgroupをApache2が使えるようにしておく.
/Library/WebServer/Documents/phpMyAdminで
config.sample.inc.php を config.inc.php とコピーする
http://[ドメイン名]/phpMyAdmin/
でアクセスするとログイン画面になる.
ユーザ名もパスワードもブランクでログインする。
パスワードを変更する をクリックしてパスワードを設定する。
ここでパスワードを設定するとユーザ名は root しか通らず、パスワードはMySQLのパスワードと同じにしてみたがが同じでないといけないのか?
phpMyAdminのインストール方法には色々なサイトでかいてあるが、すくなくともこのバージョンだとほとんど何もしなくてうごいているようだ。日本語になっているし。ちゃんとMySQLとカップルしてうごいているのだろうか?まだ確信がない。

なんだか、できたようだけど、まだわからない。

[追記]

目次から
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 root
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server 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 its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.
mysql>のプロンプトの後に
GRANT ALL ON *.* TO ‘root’@’localhost’ IDENTIFIED BY PASSWORD  ‘xxxxxx’  WITH GRANT OPTION;
と入力する(改行なしの1行だ)。’xxxxxx ‘にMySQLのパスワード文字列を入れる
mysql> GRANT ALL ON *.* TO ‘root’@’localhost’ IDENTIFIED BY ‘xxxxxx’ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
と返ってくるから quit を入力する。
mysql> quit
Bye
/varにmysqlというdirectory を作り、シンボリックリンクを張る。
hoge:~ hoge$ sudo mkdir /var/mysql
hoge:~ hoge$ sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
/var/mysql でシンボリックリンクができていることを確認する。
lrwxr-xr-x   1 root  wheel    15 Sep  4 16:41 mysql.sock -> /tmp/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の設定ができる。

Server.app からファイル共有を選び、共有ポイントを作製すればいい。デフォルトでBackup,Groups,Public, Users が並んでいる。これに左下の + ボタンをクリックして フォルダを選択するわけだ。Webページを置くフォルダ[ユーザ名]/Sites を加える。この加えたフォルダをダブルクリックするとアクセス権を設定できる。 Webページを置くフォルダ[ユーザ名]/Sites をオーナーが「読み出し/書き込み」 にして他の全員を「読み出しのみ」に設定すればいい。スクロールして 設定の項目はMacクライアントと共有(AFP)、Windows クライアントと共有(SMB)、iOSデバイスと共有(WevDAV)、ゲヅトユーザにこの共有へのアクセスを許可 にチェックを入れる。

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

Mの更新(Mountain Lion OSX10.8サーバ) その10ーWebサーバその1
######各ユーザのweb page を作る########
/Library/Server/web/config/apache2/ReadMe.txt を読むと
%%%%%%%%%%%%%%%%
httpd_server_app.conf
This is the primary configuration file read by Apache. Note that it differs from   the httpd.conf distributed with Apache. It is specific to Server’s Apache confi  guration, and takes the place of the desktop Apache configuration in /etc/apache  2/httpd.conf.
httpd_server_app.conf.default
This file is the default version of httpd_server_app.conf. It is not processed b  y Apache; it is available to administrators who have modified httpd_server_app.conf and want to recover the original settings. During a software update or an up  grade install, a new version of this file may be installed. During a “restore fa  ctory settings” operation, this file replaces httpd.conf.
sites/0000_any_80_.conf
sites/0000_any_443_.conf
These are the configuration files for the default virtual host (“Server Website”   in the UI), and default SSL virtual host (“Server Website (SSL)” in the UI), re  spectively; the ones that listen on all IP addresses when any web-based service   is enabled from the Server application.
……..but it’s strongly recommended that adminis  trator put changes in separate “Include” files………
Library/Server/Web/Data/Sites/Default/
This is the default DocumentRoot for the default wild-card site. If you create c  ustom content, place an index.html or index.php file in this folder and it will   take precedence over the default.html file Apple installs there.
%%%%%%%%%%%%%%%%
/Library/Server/web/config/apache2/httpd_server_app.conf
がApacheの最初に読み込まれるファイルであり、/etc/apache2/httpd.confに取って代わるものであると書いてある。だからapache2の設定についてはこのファイルに書き込むことになる。この文書の最後に
To restore the default configuration, from Terminal app:
sudo /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin command web:command=restoreFactorySettings
とあるので、なんだかでたらめになったらこれが使える。
/Library/Server/web/config/apache2/httpd_server_app.conf の187行目にサーバ管理者のメールアドレスを記入するところがある。
198行目にDocumentRoot /var/emptyとある。なんかおかしいな。当然/var/emptyにはなにもないからな。
349行目以降に
# “/Library/WebServer/CGI-Executables” should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory “/Library/Server/Web/Data/CGI-Executables”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
とある。CGIができるdirectoryは、これまでだったら/Users/*/Sites/cgi-binとなるところだ。
605行目以降に
<IfDefine WEBSERVICE_ON>
Include /Library/Server/Web/Config/apache2/sites/*.conf
</IfDefine>
とある、これがServer.appのWebのON-OFで変化するところのようだ。
default では
/library/server/web/data/sites/default
を見に行くようで、日本語ではdefault.html.jaをさししめすが、これは実はエイリアスで
/Applications/Server.app/Contents/ServerRoot/usr/share/web/locales/ja.lproj/default.html
のページが提示される。
Server.appからどうやって各ユーザのページを指定していいのかわからない。
[追記]
各ユーザのSitesが見えるようにするためには;
Server.appでWebサイトを選択し
20130816websites-1
下の鉛筆ボタンをクリックして
20130816websites-2
サイトファイルの保存場所を/Library/Server/Web/Data/Sites/Default にする。このフォルダ内のファイルがWebで公開されるファイルとなる。
/Library/Server/Web/Data/Sites/Default 内にシンボリックリンクを張る。
たとえばユーザ名がhogeの場合、/User/hoge にSites というdirectory を作成しこの中にWeb公開するページを入れておく。
ln -s /User/hoge/Sites/ /Library/Server/Web/Data/Sites/Default/hoge
とすれば、シンボリックリンクを張ることができ、ユーザhoge君は自分のホームディレクトリである/users/hoge のsites内にファイルを置けばhttp://excample.com/hoge/ で公開できることになる。
これらのページにアクセスが可能にするためには次ページ移行の設定をおこなってちょうだい。
最終的には解決した。こっちを読んでちょうだい。

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をインストールしておくこと。

★root になれるようにしておいたほうがいい。sudo でも問題ないけど。

「システム環境設定」→「ユーザとグループ」→左下の鍵を開ける→ログインオプションが有効になる→「ネットワークアカウントサーバ:接続….」をクリック→「ディレクトリユーティリティを開く」をクリック→左下の鍵を開ける→「メニューバー」の「編集」から 「ルートユーザを有効にする」を選択→ルートユーザのパスワードを入力する、確認用に同じパスワードを入力する。 これでターミナルで su とすればrootユーザとなって作業できる。

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 [メーリングリスト名]
を実行するとそのリストが一覧にでてくる。すべてのリストについて実施する必要がある。
これが、わからなくて悩んだ。

★運用につていの説明は、ここに詳しく書いてある。

メーリングリスト管理メモ

OSX10.8サーバ その8 mailman-4

Mの更新(Mountain Lion OSX10.8サーバ) その8-mailman-4
Mailman設定のまとめはこっち。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406
/usr/local/mailman/data をみると
drwxrwsr-x   7 root      _mailman    238 Aug 28 15:00 .
drwxrwsr-x  22 root      _mailman    748 Aug 17 13:45 ..
-rw-r—–   1 root      _mailman     41 Aug 17 14:41 adm.pw
-rw-rw—-   1 root      _mailman   1088 Aug 28 15:02 aliases
-rw-rw—-   1 _mailman  _mailman  16384 Aug 28 15:02 aliases.db
-rw-r–r–   1 root      _mailman     10 Aug 17 13:45 last_mailman_version
-rw-r–r–@  1 root      _mailman  14100 Aug 17 13:45 sitelist.cfg
となっていて、aliases のowner が_mailman になっていないので_mailmanに変更した。グループは読み書き可能となっているので変更しなかった。
しかし、現在のmikeではaliasesのownerはrootで動いているし、alialases.dbのパーミッションは664だ。ネットでみるとaliases, aliases.db のパーミッションは660、ownerはmailman にしろと書いてある。ちなみに、mountain lion ではowner:group は_mailman:_mailman とdefaultでなっている。なぜだ?
/etc/postfix の main.cf のバックアップを作っておいてから、一番下に以下の1行を書き加えた。
alias_maps = hash:/usr/local/mailman/data/aliases
まだ、だめ。

OSが10.8.1にアップデートができるとの連絡だ。アップデートした。

test というメーリングリストをつくったわけで、test@example.com へメールを出すと、SMTPのログでは
smtp error log をみると

Aug 30 16:09:26 example.com postfix/postscreen[3926]:
CONNECT from [123.123.123.123]:50450 to [124.124.124.124]:25
Aug 30 16:09:26 example.com postfix/postscreen[3926]:
PASS OLD [123.123.123.123]:50450
Aug 30 16:09:26 example.com postfix/smtpd[3928]:
connect from upstream..example.com[123.123.123.123]
Aug 30 16:09:26 example.com postfix/smtpd[3928]:
sacl_check: mbr_user_name_to_uuid(test) failed: No such file or directory
Aug 30 16:09:26 example.com postfix/smtpd[3928]:
89DCCE30A8: client=upstream..example.com[123.123.123.123]
Aug 30 16:09:26 example.com postfix/cleanup[3935]:
89DCCE30A8: message-id=<503F11A7.8090302@example3.com.jp>
Aug 30 16:09:26 example.com postfix/qmgr[84]:
89DCCE30A8: from=, size=1145, nrcpt=1 (queue active)
Aug 30 16:09:26 example.com postfix/smtpd[3928]:
disconnect from upstream..example.com[123.123.123.123]
Aug 30 16:09:26 example.com postfix/local[3936]:
89DCCE30A8: to=, relay=local,
delay=0.16, delays=0.03/0.01/0/0.12, dsn=2.0.0, status=sent
(delivered to command: /usr/local/mailman/mail/mailman post test)
Aug 30 16:09:26 example.com postfix/qmgr[84]:
89DCCE30A8: removed

testというファイルやディレクトリがないといっている

/usr/local/mailman/log にerror log がある。これをみると、

Site list is missing: mailman

とある。

mailman というメーリングリストがないとだめだという記事をみつけた、そこで

/user/local/mailman で sudo /bin/newlist mailman を実行してmailmanというメーリングリストを作成した。/usr/local/mailman/data のaliases をみるとリストができている。Webページにもリストの名前が挙がっている。

それでも、動作しない。

http://www.python.jp/doc/contrib/mailman/ にしたがって

/etc/postfix/main.cf に

owner_request_special = no
recipient_delimiter = +
alias_maps = hash:/etc/aliases,hash:/usr/local/mailman/data/aliases

を書き加えた。

unknown_local_recipient_reject_code = 550 はすでに記述されていた。

ついでに
message_size_limit = 10485760 とあるのを
message_size_limit = 209715200
と200MBに変更した。

これでOKだ。

Mailman設定のまとめはこっち。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406

OSX10.8サーバ その7 mailman-3

Mの更新(Mountain Lion OSX10.8サーバ) その7-mailman-3

Mailman設定のまとめはこっち。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406

mailman のコマンドだ。

/usr/local/mailman の構成は;

Mailman lists pythonlib
archives locks qfiles
bin logs scripts
cgi-bin mail spam
cron mailman-2.1.15 templates
data mailman-2.1.15.tgz tests
icons messages

で、bin にあるコマンド一覧は;

/usr/local/mailman/bin

add_members  config_list  inject           newlist          show_qfiles
arch             convert.py       list_admins      paths.py         sync_members
b4b5-archfix     discard          list_lists        paths.pyc        transcheck
change_pw        dumpdb           list_members     qrunner          unshunt
check_db         export.py        list_owners      rb-archfix       update
check_perms      find_member   mailmanctl       remove_members   version
cleanarch        fix_url.py       mmsitepass       reset_pw.py      withlist
clone_member     genaliases       msgfmt.py        rmlist

コマンドは
/usr/local/mailman でたとえば、
sudo bin/list_lists
のように実施する。

★新しいリストを作る
newlist [listname]

★バーチャルドメインで運用する場合は、リスト名にドメイン名も付ける
newlist [listname@example.com]

★リストの削除
rmlist –archives [listname]
–archivesオプションで書庫も削除される。
確認なしにあっさりと削除されちゃうので、慎重に。

★デフォルト設定
以下のファイルを書き換える。設定は、newlistで作成されるリストに反映される。
/etc/mailman/mm_cfg.py

★config_list -i inputfilename [listname]
-iオプションで.pyファイルから設定を読み込む。

★config_list -o outputfilename [listname]list
-oオプションでは逆に.pyファイルに設定を書き出す。

★このコマンドのヘルプを表示するにはオプションを付ける
-h, -help

★リストの一覧
list_lists
最後の “s” を忘れないように;

★管理者の一覧
list_admins [listname]
最後の “s” を忘れないように

★購読者の一覧
list_members [listname]
最後の “s” を忘れないように

★リストに購読者を加える
add_members -r filename [listname]

filenameは一行にひとつのメールアドレスが書かれたプレーンテキス。

★リストから購読者を削除する
remove_members [listname] [mailaddress]

★パーミッションのテスト
check_perms
-fオプションでは、必要があれば修正される。ただしrootで使用。

★パスワードの変更
change_pw [オプション]

オプション:
すべてのリストのパスワードを変更する
–all / -a

特定ドメインのリストのパスワードを変更する
–domain=domain
-d domain

特定リストのパスワードを変更する
–listname=listname
-l listname

新しいパスワードを設定する。指定しなければ、ランダムなパスワードが設定される
–password=newpassword
-p newpassword

リストのオーナーに新しいパスワードを通知しない。
–quiet / -q
このオプションを選ばなければ、オーナーにメールで通知されるので、危険がある。ランダムなパスワードを設定した場合、コマンドの実行結果としてターミナルに新しいパスワードが表示されるので、それをメモしておく必要がある。

★Mailmanのバージョンを表示
version

でaliases を作る。
/usr/local/mailman で
sudo bin/genaliases
を実施した。

/usr/local/mailman/data
にaliases とaliase.dbが作成される。

Webページから新規のリストを作成すると
aliasesの中身は

test: “|/usr/local/mailman/mail/mailman post test”
test-admin: “|/usr/local/mailman/mail/mailman admin test”
test-bounces: “|/usr/local/mailman/mail/mailman bounces test”
test-confirm: “|/usr/local/mailman/mail/mailman confirm test”
test-join: “|/usr/local/mailman/mail/mailman join test”
test-leave: “|/usr/local/mailman/mail/mailman leave test”
test-owner: “|/usr/local/mailman/mail/mailman owner test”
test-request: “|/usr/local/mailman/mail/mailman request test”
test-subscribe: “|/usr/local/mailman/mail/mailman subscribe test”
test-unsubscribe: “|/usr/local/mailman/mail/mailman unsubscribe test”

とちゃんとできている。
しかし、まだ機能していない。aliases をどっかで指定しないといけないのだと思うのだがどこでだろ?

最終的にはできあがった。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406

OSX10.8サーバ その6 メールサーバその2

Mの更新(Mountain Lion OSX10.8サーバ)その6 メールサーバその2

とりあえず、以下の設定でメールの送受信ができた。

サーバの設定
メールを提供:自分のドメイン example.com とかを入力。
認証:カスタム → すべてチェック = すべての方式
ISP を経由して  → メールのリレーを許可してくれるSMTPサーバ。upstream.com とかを入力する。これがないとメールは送信できない。
SMTP リレー認証はチェックなし (もし、ISPが要求しているのならそれに従って)

フィルタの設定はブラックリストのみON にできる。ほかのvirus filter spam filter をONにすると、クライアントでは送付できたように見えるが届かない。その理由は不明なので、とりあえず3つともチェックしないことにしておく。

クライアントがサーバにアクセスすると(IMAP、POP、SMTPいずれの場合でも)、「セキュリティ例外の通知」あるいはこれに類似したウインドウがでてきて、証明書が不正であると言ってくる。当然だ。有料の証明書を取得していないからだ。独自発行の証明書だから不正といわれてもしょうがない。「セキュリティ例外を承認」として、今後もそのまま承認することにすればいい。
登録したユーザしか使えない。

クライアント側の設置(IMAP の場合)
メール受信サーバ
IMAP
サーバ名:example.com ポート 143
ユーザ名:hoge
接続の保護:STARTTLS
認証方式:暗号化されたパスワード
不正な証明書と言われるが無視

POP
サーバ名:example.com ポート 110
ユーザ名:hoge
接続の保護:STARTTLS
認証方式:暗号化されたパスワード
不正な証明書と言われるが無視

SMTP
example.com ポート 587
接続の保護:STARTTLS
認証方式:暗号化されたパスワード
ユーザ名:hoge
不正な証明書と言われるが無視

OSX10.8サーバ その5 メールサーバその1

Mの更新(Mountain Lion OSX10.8サーバ) その5 メールサーバその1

メールサーバの設定は簡単なはず….

Server.app からメール の設定画面で

ISP 経由のリレーで、リレーしてくれるサーバを設定すればおしまい。

ssh で外部からログインし、コマンドラインからメールを送信すると送信できる。たとえば;
mike:~ hoge$ mail hogehoge@example.com
Subject: test
This is a test mail
[contro + D]
EOT
である。
ただし….

フィルタの設定を編集… からvirus mail フィルターとか迷惑メールフィルターを設定するとメールを送信できない。ブラックリストフィルタをデフォルトのサーバを指定して有効にするのはかまわない。ブラックリストサーバであるzen.spamhaus.org
がまともなサイトなのか知らないので効果があるかどうかわからない。

というわけで、全部使わないという設定でいい。

OSX10.8サーバ その4 mailman-2

Mの更新(Mountain Lion OSX10.8サーバ)  その4-mailman-2

Mailman設定のまとめはこっち。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406

Mailmanの設定の続きだ。

その3でうまく行かなかった原因がわかり、解決したので、確認した。
http://[ドメイン名or ip address]/mailman/listinfo にアクセスできる。

さら、続ける。

★新しいメーリングリストを作る。
/usr/local/mailman で

sh-3.2# bin/newlist mailman
?ꥹ?ȴ????ԤΥ᡼?륢?ɥ쥹?????Ϥ??Ƥ???????:

んが。相変わらず文字化けだ。わからんので、リターンを押すと

mailman ?ν???ѥ????: ?????????̤??Ͽ?Υ᡼??

OSX10.8サーバ その3 mailman-1

Mの更新(Mountain Lion OSX10.8サーバ)  その3-mailman-1

さって、Mountain Lion Server (10.8) が立ち上がったわけだ。その2でも書いたがMountain Lion Serverの起動DVDは作れていない。そこでとりあえず、復元ディスクアシスタントというのを作っておいた。どこまで復元できるのかわからないけど。

★OS X:復元ディスクアシスタントについて

http://support.apple.com/kb/HT4848?viewlocale=ja_JP
RecoveryDiskAssistant.dmgをダウンロードしUSBメモリーに復元ディスクアシスタントインストールした。このUSBメモリーを刺しておいて、「option」キーを押しながらコンピュータを起動する。Mac本体にパスワードを設定しているとパスワードを入力しないと先にすすまない。ユーティティが立ち上がる。これでできるのは、残念ながら、Mountain lion への再インストール(ネットを使う)か Time Machine からの回復、ディスクユーティリティを使うだけだ。簡単にサーバーの初期化にはならない。だからMountain Lion 起動ディスクと変わらないわけだ。でも作っておいたほうがいい。sサーバをクリーンに再構築するのはクリーンなMountain Lionを作ってApp Storeからダウンロードするしかないが、一度サーバを作って、TimeMachine を作ると、 このUSBメモリを使って、TimeMachine からサーバを昔の状態に復旧させることができるからだ。

というわけで結局サーバのクリーンインストールディスクは作れない。先に進む。

目的は、これまでのWebページの再構築とメーリングリストの再構築だ。
ユーザごとのサイトをどこにつくるのだろうか?OS10.4 のときは各ユーザのディレクトリにSite というdeirectory があって、ここにいれたファイルがWebページとなったのだ。今度はない。
単純にURLをこのサーバのip address にすると
/Library/Server/Web/Data/Sites/Default にアクセスすることになっている。
Webサーバとして動作させることができることを確認した。

まずは、メーリングリストだ。なんとMailman がなくなっちゃったからな。

(Mailman設定のまとめはこっち。http://seigi.accsnet.ne.jp/sigh/blog/?p=2406

http://www.livetime.com/mountain-lion-mailman-mailing-list/
によると
「As part of the OS X Mountain Lion Server upgrade, Apple has removed the Mailman mailing list manager entirely.」
というわけで、このページにしたがってMailman をインストールしてみた。

ターミナルをつかうわけでrootにならないといけないわけで、これまではターミナルでsu とすればrootとして作業できたのに10.8ではなれない。どうやら10.7くらいからユーザが簡単にrootになれないようにしたようだ。

★root になれるようにする
「システム環境設定」→「ユーザとグループ」→左下の鍵を開ける→ログインオプションが有効になる→「ネットワークアカウントサーバ:接続….」をクリック→「ディレクトリユーティリティを開く」をクリック→左下の鍵を開ける→「メニューバー」の「編集」から 「ルートユーザを有効にする」を選択→ルートユーザのパスワードを入力する、確認用に同じパスワードを入力する。 これでターミナルで su とすればrootユーザとなって作業できる。

このマニュアルにしたがうことにすると
★/usr/local  とその中にmailmanというdirectoryがないから作る。

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) ??
?ʤäƤ??ޤ?. ???ʤ??Υ????ƥ?Υ?????桼??????????¸???
???ɤळ?Ȥ??Ǥ??ޤ?. ???

文字化けしているのはターミナルの設定が悪いから。

ターミナルの環境設定から 設定のページで 言語環境で 文字エンコーディング に日本語(EUC)にしておく。

続く。

 

OSX10.8サーバ その2

Mの更新(Mountain Lion OSX10.8サーバ)  その2

現在のmはPowerMacG5、つまりinelではないのだ。OS10.4なのだ。更新したかったが、新しいMacを誰も購入してくれない。というのが続いて古いままだった。MacMini で立ち上げれば10万円くらいでなんとかなるが、その予算もない。どうするかなぁ..どっかで予算を確保しないと。

ある日、突如として、Macを購入していいということになった。これも日頃の管理者の努力が実ったのだ。管理者がすでにこっちの大学ではpart time professor だというのに30万円を超える予算をいただいたのだ。

そこで、
機種名: Mac Pro
機種 ID: MacPro5,1
プロセッサ名: Quad-Core Intel Xeon
プロセッサ速度: 2.8 GHz
メモリ: 8 GB
OS:10.7 Lion
を、購入したのだ。これが半年前、つまり年度末の話だ。新年度(24年度)になってからはまとまった時間がとれず、なかなか手につかないのでそのままのOSX10.7 Lionでパソコンとして使っていたわけだ。半年すぎて、夏休みにセットアップすることをもくろんだわけだ。
OS10.4Serverからの移行は移行ソフトが仮にあってもうまくいかないにきまっているから、新規に作るしかない。さらにOSは10.8 Mountain Lion になってしまったのだ。10.5~10.7 のサーバは作ったことがないからどんな風に変わっていったのかわからない。

Mountain Lion Server はMountain Lion からネット経由でインストールするしかない。そこで,Mountain Lion をApp Store から購入する。1,700円。ネット経由でインストールするから起動DVDがない。これはちとやばい。1度購入すると、何回もネットからインストールできるわけだが、起動するメディアが手元にないというのは心細い。何回もHDを消去、再度インストールということになるからだ。
1度作り上げると、このようなことは行わないが、たいてい、どっかで間違える。間違えた原因はあとからわかるのであって、間違えたとき、どこからやり直したらいいのかわからないことが多い。だから各ステップで保存しておくとか、回復できるようにしておかないと辛いことになる。

同じことを考えているユーザは山ほどいて、Lion の起動DVDを作る方法は、ネットにいくらでも転がっている。Mountain Lion 起動DVDも同じように作れる。

1)Mountain Lionの購入
Lion で起動しているMac からApp Store でMountain Lion を購入する。ダウンロードが始まり、成功すると自動的にインストールするか?というプロンプトが出てくる。ここで終了する。先に進むとインストーラがなくなっちゃうからだ。インストーラをダウンロードするのに時間がかかるから、ここでトイレに行くとかビールを注ぐためにMacの前から動いていい。自動的にインストールまで進まないからだ。
2)起動ディスクの作製
アプリケーションフォルダ内にOS X Mountain Lion インストール.app がダウンロードされている。ここからインストールDVDあるいはUSBメモリー(USB Thum drive)を作る。
直接DVDに焼く方法とLion Disk Maker(http://blog.gete.net/lion-diskmaker-us/)を使う方法がある。前者の方がおすすめだ。
2−1)DVDにディスクユーティリティを使って焼く
アプリケーションフォルダ内に「OS X Mountain Lion インストール.app」というのがあるので、これを右クリックして「パッケージの内容を表示」を選ぶ。
開いたフォルダの Contents/SharedSupport に入って行くと「InstallESD.dmg」というファイルがある。これが起動ディスクに焼くファイルだ。しかしここの場所にあるとディスクを焼く際に選択できないので、この dmg ファイルをデスクトップにコピーする。
コピーが終わったら「ディスクユーティリティ」を開き、メニューから「ディスクを作成」で、いまコピーした dmg ファイルを選択し、「ディスクを作成」ボタンを押す。
ディスクドライブに空の DVD-R DL を入れたら「ディスクを作成」ボタンを押す。
DVD-R (4.7GB)では入らない。Double Layer のDVD-R DL ( 8.5GB)が必要だ。
2−2)Lion Disk Makerを使う。
USBメモリーまたはDVDを指定して起動ディスクを作製できる。ただし、作成中のプロンプトが出来上がっても終了しない。DVDが焼けるとトレイが自動的に出てくるので、出来上がったのがわかるがUSBメモリーのとき、いつ完成したのかわからない。両方とも問題なくできるのだが。バグなのでいずれ解消されるだろう。解消されたらこちらの方が楽だ。
というわけでMountain Lion の起動DVDができたわけだ。ここまでするのに、ネットを見ながらとかやっていたので6時間。先がながい。この起動DVDあるいはUSBメモリから初期状態に戻すのにはネットワーク接続が必要ないらしい。まだやってないのでわからない。ネットに接続した状態での初期化は成功した。

3)Mountain Lion にする。
アプリケーションフォルダ内にOS X Mountain Lion インストール.appをダブルクリックしてアップデートしても、問題ないが、これまでLionをパソコンとして使っていたので、Office とかサーバーでは使わないソフトがインストールされたままだ。クリーン・インストールにしたい。

作製した起動DVDから起動し、ユーティリティ選択画面になるからディスクユーティリティを使ってHDの内容を消してインストールする。ここでは問題ない。

インストールしたいHDを消去したらMountain Lion Server をユーティリティ選択画面から再インストールを選びインストールする。

4)Mountain Lion Server にする
Mountain Lionができあがったら、App Store からMountain Lion Serverを購入し、インストールする。このサーバの起動DVDを作る方法を探したが、ない。まだMountain Lionが出たばっかで、サーバに関しても情報がネットに少ない。購入するとダウンロードが始まり、Mountain Lion同様アプリケーションフォルダ内にインストーラができるのだが、この中にインストーラとなるイメージファイル(.dmg)がないのだ。だから、サーバを再度クリーンインストールするためにはMountain Lionに初期化し、再度App Store からダウンロードするしかない。そのうち誰かが起動DVDの作りかたを教えてくれるだろう。

ここまでやって1日目はおしまい。

OSX10.8サーバ その1

M更新(Mountain Lion OSX10.8サーバ) その1

Mちゃんの生年月日はよくわからない。tが兄弟だ。

webページのトップに2000年とかいてある。記入したのはずっと後のことだ

当初はRedHatLinux で構築した。現在鹿児島大学の准教授のO君が大学院学生だったころ関わっていたと思う。その前から、サーバは建てていた。そのときのマシンは憶えていないが、Linux でだ。2000年のころだ。だからWebページにかいてあるのだ。

2005年に中古のPowerMacG4 を手に入れて原型が作られている。OSXサーバの始めだ。

2007年にこれまた中古のPowerMacG5を手にいれて更新されている。このMacの発売時期は2003~2005年なので、このころ購入されたのだう。5年ものだ。ウイスキーだったら5年ものと言えばそこそこだけど。パソコンの5年ものとは、博物館へ入る手前のものだ。現在のサーバだ。だから10年働いていることになるが、多分、途中で同じスペックのPowerMacG5と入れ替えていると思う。いずれにしろ中古だ。こけたことがあって、MacMini がピンチヒッターだったこともある。記録がない。

2012年3月に今度は新品のPowerMacProを手に入れた。だからこいつに変更しようと思っている。

G4→G5 はHDの入れ替えだけですんだ。HD自体は交換だが中身の入れ替えだけで終わったらしい。

今度はintelMacだからそうはいかないだろう。

PowerMacPro をmike のHD(OSは10.4)で動かして、10.5、10.6、Lion(10.7) で上書き。さらにMountain Lion(10.8) に上書き、これができたら一番簡単だが…..  できそうにない。10.6から10.7に上書きしろというのがAppleの言い分のようだが、それにすら失敗したというページがあった。

転職して1年半、新しい職場にもなれ、新しい職場では時間に余裕がある。しかし、サーバ本体は昔の職場にあるわけで、昔の職場で実施するしかない。そこで、この夏休みをつぶしてやろうかと思っているのだが、できるかなぁ?

データベース、そのほかWebページの移動。メーリングリストの再構築。apache をまた書き換える….先が長い。だいたいデータベースのmySQLのコピーはどうしたらいいのかすらわからない。バージョンがちがったときどうなるんだろ?

時間に余裕があるときは、あまり仕事がすすまないんだよね。ま、夏休みはすることがないからトライしてみるか。