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

Mavericksの時計 を time server に同期させる。

Mavericks の時刻同期がおかしい。ここで変更を試みたが、まだだめだ。だからntpd を別途インストールすることにした。
OS X MavericksのNTPサーバと同期がとれないステキ仕様を参考にNTPをインストールしてみる。
NTP Software DownloadsからDevelopment 4.2.7p425 の http
20140226ntp-00
をクリックしてダウンロードする。Productionの4.3.6p5 はMavericks では使えないようだ。
20140226ntp-03 をダブルクリックして解凍する20140226ntp-04
このフォルダを/temp 内に移動させる。TinkerTool で . で始まるファイル/フォルダを可視化しておくと面倒がない。
以降はターミナルで su になって実行したほうが楽だ。 /tmp/ntp-dev-4.2.7p425 に行って、congfigure を実行する。Xcode が無いとエラーとなり、Xcodeをインストールするかとか聞いてくるから、指示にしたがってインストールする。

sh-3.2# ./configure
checking for a BSD-compatible install… /usr/bin/install -cchecking whether build environment is sane… yes
(略)
config.status: creating evconfig-private.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing libtool commands

となるから、さらにmake する。

sh-3.2# make
Compiling with GCC now generates lots of new warnings.
Don’t be concerned. They’re just warnings.
Don’t send bug reports about the warnings, either.
Feel free to send patches that fix these warnings, though.
(略)
Making all in tests
make[3]: Nothing to be done for `all-am’.
make[2]: Nothing to be done for `all-am’.

warning: が沢山でてくるが無視だ。make install する。

sh-3.2# make install
[ ! -r ./../COPYRIGHT ]
|| [ check-COPYRIGHT-submake -nt ./../COPYRIGHT ]
|| /Library/Developer/CommandLineTools/usr/bin/make check-COPYRIGHT-submake
(略)
x html/warp.html
x html/._xleave.html
x html/xleave.html

/usr/local/sbin にntpd ができる。
本来のntpd は
/usr/sbin にあるから、こいつは使えないように別名(最後に~を付ける)で保存しておく。/usr/sbinで

sh-3.2# mv /usr/sbin/ntpd /usr/sbin/ntpd~

シンボリックリンクを張る。

sh-3.2# ln -s /usr/local/sbin/ntpd /usr/sbin/ntpd

確認する。

sh-3.2# pwd
/usr/sbin
sh-3.2# ls -al
(略)
lrwxr-xr-x 1 root wheel 20 2 27 07:55 ntpd -> /usr/local/sbin/ntpd
-rwxr-xr-x 1 root wheel 61840 10 23 07:51 ntpdate
-rwxr-xr-x 1 root wheel 134272 10 23 07:51 ntpdc
-rwxr-xr-x 1 root wheel 375024 10 23 07:51 ntpd~
-rwxr-xr-x 1 root wheel 2029 10 23 07:51 ntptrace
(略)

/etc/ntp.conf にtime server を書き加え、確認する

sh-3.2#  cat ntp.conf
server ntp.nict.jp minpoll 6 maxpoll 10
server ntp1.jst.mfeed.ad.jp minpoll 6 maxpoll 10
server ntp2.jst.mfeed.ad.jp minpoll 6 maxpoll 10
server ntp3.jst.mfeed.ad.jp minpoll 6 maxpoll 10

ntp.nict.jp は独立行政法人 情報通信研究機構の time server で一般ユーザがガンガンアクセスしても問題ないとアナウンスしているサイトだ。
ntp1.jst.mfeed.ad.jp〜ntp3.jst.mfeed.ad.jp はインターネットマルチフィード株式会社がサービスしているtime server でこれも自由に使っていいらしい。
ntpd を止めて再度読み込ませてもいいが、Mac自体を再起動して動作するかを確認することにする。再起動して動かないと困るからだ。
んで、再起動して2、3分後、ntpq -pn を実行する。

Mac:~ hoge$ ntpq -pn
remote refid st t when poll reach delay offset jitter
=================================================================
*133.243.238.164 .NICT. 1 u 36 64 377 11.384 -0.288 0.314
-210.173.160.27 172.29.3.50 2 u 33 64 377 11.581 0.620 0.387
+210.173.160.57 172.29.3.50 2 u 22 64 377 11.961 0.424 0.114
+210.173.160.87 172.29.3.60 2 u 8 64 377 11.271 0.666 0.182

ということで、同期している。
システム環境選定の日付と時刻では;
20140226ntp-05
 
と横並びに出て来ちゃうが、ご愛嬌だな。
朝9時前にインストール、設定したが、午後6時の結果は;

Mac:~hoge$ ntpq -pn
remote refid st t when poll reach delay offset jitter
=================================================================
*133.243.238.164 .NICT. 1 u 242 512 377 11.600 -0.314 0.760
-210.173.160.27 172.29.3.60 2 u 131 512 377 11.656 0.658 0.575
+210.173.160.57 172.29.2.50 2 u 109 512 377 11.828 0.393 0.109
+210.173.160.87 172.29.3.50 2 u 106 512 377 11.416 0.763 0.312

とピッタンコだ。これまでは0.2秒くらい平気でずれていたからな。

Mavericks の時刻同期

というわけで無事 su, sudo が実行可能になったので、時刻同期の間隔を変更するために /etc/ntp.conf を書き換えた。
sh-3.2# cat ntp.conf
server ntp.nict.jp minpoll 6 maxpoll 10
ついでに起動時に時刻同期させるために /etc/hostconfig の TIMESYNC=-NO- を書き換えた。
# This file is going away
AFPSERVER=-NO-
AUTHSERVER=-NO-
TIMESYNC=-YES-
QTSSERVER=-NO-
んが?「This file is going away」だって。使えないのか?ま、書き換えたままにしても害はないはず。使えないのかもしれないが。

sh-3.2# ntpq -pn
remote refid st t when poll reach delay offset jitter
==================================================================
*133.243.238.243 .NICT. 1 u 35m 128 377 11.076 -35.368 41.970

の状況で、再起動してみる。

sh-3.2# ntpq -pn
remote refid st t when poll reach delay offset jitter
==================================================================
133.243.238.244 .NICT. 1 u 29 64 3 11.999 59.107 0.533

となった。reach が 377 から 3 になったので、再起動時に時刻同期を実施したんだろ。頭に * がまだ付いていないが、そのうち付いて時刻同期サーバとして確認されるはずだし、*はすぐ付くようになった。

HDDが認識できなくなっちゃった。

昨日、こっちの大学の勤務日なので午前中から大学にいると、贅沢なおっさんから電話があって、これから大学に行くけど、Macの調子悪いから見てくれだって。
1)起動に時間がかかる。
2)Thunderbolt Display のUSBポートに接続したTime Machine用の外付けHDDが見えたり見えなかったりだ。
3)MacBook Air を単独で使ったあと、Clamshell モードでThunderbolt Displayに接続するとデスクトップが崩れちゃっている。
というのがクレームだ。午前中は、こっちの大学で特に仕事がないので、のこのこ研究室に出向いたわけだ。
3)はOSXでよくあることで、デスクトップのアイコンの位置を記録したファイルが壊れちゃうのだ。OSX10.6 などで良く出現したトラブルだが10.8 になってあまり生じなくなったが、まだ起こりやすいのかもしれない。MacBook Air 単独で使ったときのデスクトップのアイコンの配置とThunderbolt Display のアイコン配置は、Diplay の大きさがそのもそ違うのだからそれぞれで記憶されていなければいけない。多分、そうなっているはず。だがうまくいかないことがあるみたいだ。そこでDIM2.0.2 というアイコン配置を記憶させるアプリケーションをインストールし、Thunderbolt Display のときの配置を憶えさせて、配置が崩れちゃったときは元に戻すということをさせた。これでうまくいくかどうかわからない。デスクトップのアイコン配置情報は .DS_Storeに書き込まれる。これが狭い画面のMacBook Air単独使用とThunderbolt Display使用とでどのように変わるのかよくわかってない。DIM2.0.2 は別途保存してあった情報から .DS_Storeを上書きするんだろうな。きっと。
1)と2)は同一原因で、外付けHDDの起動ファイルが壊れちゃったんだろ。DiskFirstAid で修復しておしまい。HDD をMacが認識してくれたから簡単だった。外付けHDDがおかしいのでこれを認識するために起動に時間がかかったんだろ。
で、本日(火曜日)あっちの大学に出勤してMacをみたらTimeMachineがエラーメッセージを吐いている。HDDになにかトラブルがあるようだ。ディスクユーティリティでなにやら操作していたら、にっちもさっちもいかなくなりアンマウントしたら、もうMacはこのHDDを認識してくれない。システム・プロファイラーでは存在を示しているが不明となっており、ディスクユーティリティでは認識しない。コマンドラインでdiskutil コマンドでも;
$ diskutil list
を実施しても認識していない。あー………
こっちはHDDが完全にこけちゃったおそれがある。内蔵だから、取り出して外付けHDDにしてなんとか解決できるだろうか?
To be continued.
午後遅く、時間がようやくできたので、シャットダウンしてBay から抜いて、また刺しこんだら認識しデスクトップに出現して、ディスクュユーティリティでFirst Aidが実行できた。修復に1時間位(多分、表示が1時間だったが退席していたのでわからない)もかかったがなんとか戻った。というわけで原因不明ながら解決。完全にこけていたわけではないようだ。
4つのBay の何処にどのHDDが刺さっているのか、すぐにはわからないようになっていたのでBay の番号をマジックで本体に書いちゃった。Bay は前面が1で後面の方へ順に2、3、4となっている。HDDを固定している金具にテプラでHDDの名前のラベルを貼っておいた。これでコマンドラインとかシステムプロファイラを立ち上げなくでもわかる。

Spamassassin Squirrelmail OSX(10.6)サーバ

実は、自宅にもサーバがあって、こっちはMac OSX10.6 サーバなのだ。個人的サーバで、管理者と家族しか使っていない。自分が自由になるサーバというのを持つのはなにかと便利だ。メールアカウントなんか勝手にいくつでも作れるからな。
実は、こっちの大学の学長選挙のとき候補者のページが必要になり、大学のサーバに置くわけにいかず、この自宅サーバを使ったことがある。民間の無料レンタルサーバを使えばいいのだが、広告があったりする制限があり、また申し込んで使えるまでが面倒なので、管理者の自宅サーバを使っちゃったのだ。なんせ、朝一番で作れ、というわけだからな。で午後には立ち上がった。コンテンツさえ有ればすぐなのだ。なんせ管理者が完全に自由にできるサーバだもんな。たった2週間で閉じたサイトだ。
でユーザが、迷惑メールをなんとかしてほしいということになった。使っているのはWebメールのSquirrelmail なのだ。これはOSX10.6サーバ に始めからついていたものだったと思う。プラグインにSpamassassin がなかった。そこで、spamassassin-2.02-beta13mar03.tar.gz とやらをダウンロードし、解凍して、できた spamassassin フォルダを /usr/share/squirrelmail/plugins に置いた。権限やownerはわからないので他のプラグイン同様 root:wheel としておいた.
/usr/share/squirrelmail で
$ ./configure
とするとsquirrelmail の設定ができる。番号を選んでON-OFF するだけだ。すでに動かすための設定は済んでいるからplugin の設定だけだ。
ついでに、これまで使っていなかったフィルタのプラグインも使うことにした。
WebメールにアクセスしてSpammassassin の設定画面に行くと、「管理者に連絡して”SpamFilters_YourHop” 変数を設定しろ」と警告がでてくる。
/usr/share/squirrelmail/plugins/filters のsetup.php の一部を変更する。
70行目に
$SpamFilters_YourHop = ‘ ’;
というのがあるから
$SpamFilters_YourHop = ‘by example.com‘;
とサーバのドメインを加筆する。
これでおしまい。
このプラグインはspamメールのデータベースに載っているspamメールを排除するものだ。
Spam のデータベースはいくつもあって、その中から選んで使う。多分、最近の日本語の迷惑メールはこのデータベースにないのではないか。援助交際とかB-CASカードとかの迷惑メールだ。Viagura はこのデータベースにあるかもしれない。だからあまり役に立たない可能性がある。
特定のメアドから来る奴はフィルター・プラグインで排除できる。
 
Spam Filter Configuration とかいうのもあって、これはSpam Scoreを自分で設定して排除するものだ。Spam Score は5段階くらいから設定するのだが、以前やったときは、選別がうまくいかない。spamでないメールがspamに、その逆もあったりで、止めたことがある。10年くらい前のことだから現在はどうなのかわからない。
あとできがついたのだが、このSpamassassin をインストールしなくてもFiltersを使えばいいようだ。必要なかった。
http://example.com/webmail/src/configtest.php でみたら、このspamassasinプラグインはsetup.phpを読めないから動いていないというエラーがでてくる。filters をうごかしたらspamassasinもうごいている。なんだ?

 

ownCloud その2

ownCloud
フォルダはアップロードできない。単一ファイルしか操作できない。一昔前のFTPソフトと同じだ。
同一名のフォルダを作成し、個別にファイルをアップロードするしかない。
フォルダのダウンロードもできない。ただし、管理者権限で「メニュー」の「管理者」から
20130823owncloud-zip
 
「ZIP形式のダウンロードを有効にする」設定すると、ダウンロード時に自動的にZIPに圧縮してダウンロードされる。
0B とあるのは圧縮容量の制限がないということだ。
Macinosh からアップロードしたファイル名が日本語のファイルがフォルダにあり、フォルダ毎ダウンロードするとき、圧縮の過程で日本語は文字化けしてしまう。Mac のほうでZIP圧縮してからアップロードするしかない。Mac Zipper がいいかも。
Macからアップロードすると、ファイルのアイコンがアップロード中の回転アイコンのまま止まらないことがある。Win でも同じなのかは確認していない。一度、上のフォルダとかに戻ってみる。ファイル容量が小さいときに生じる。ちゃんとアップロードされている。ファイル容量が大きいと右上にプログレスバーがでてくる。こちらは問題ない。

ownCloud

このサーバ、Moutain Lion Server (10.8.4)を使ってファイルを、どこからでもアップロード・ダウンロード出来るようにする。つまりCloudを作るのだ。「無料でいくらでもあるじゃん」と言うなよな。自分自身のCloudを持つのがいいのだ。
管理者のように、働く場所が複数のとき便利だ。TeamViewerのファイル転送は不安定なときがあるからな。
ownCloud をインストールしてみた。ownCloud Enterprise Edition 5.0.9だ。できたので、利用したい関係者は管理者まで連絡してちょうだい。それぞれのプラットフォーム専用のアプリをインストールすれば同期をとることもできるようだ。
https://owncloud.com/download からownCloud Enterprise Server Editionをダウンロードする。ユーザ名、メールアドレスを登録すると、メールが送られてくるのでメールにしたがってhttps://owncloud.com/downloadにアクセスして落とす。
サーバ用のアプリをダウンロードし解凍するとowncloud というフォルダになる。このフォルダ全部を
/library/server/web/data/sites/default
に移動し、

sh-3.2# chown -R www:www owncloud

とownerをwwwに変更しておく。
phpMyAdmin でデータベースを作る。
データベース名:owncloud
ユーザ:owncloud
パスワード:xxxxxxxxxxxx
ホスト:localhost
特権はすべて
照合順序:utf8_unicode_ci
である
そんでもって、http://exam.com/owncloud/ にアクセスして詳細設定を開いて
20130821owncloud
 
を入力する。この絵では管理者をowncloud にしたがadmin とかのほうがいい。
「セットアップを完了します」をクリックしてできあがり。
再度、http://example.com/owncloud/ にアクセスし、owncloudの管理者の名前とパスワードを入力してログインすると、ownCloudへようこそ の画面がでる。
3つのボタンがあるが、これはownCloud のダウンロードのページにあるのと同じで、端末がWin、Mac、Linux、Android、iPhone であればそれぞれ同期を取るアプリをダウンロードするページにいきますよ ということだ。だから右上の × をクリックして閉じて良い。同期が取れるのかは確認していないができるんだろ、きっと。
管理者でログインすると右上に管理者名があるからその右の三角をクリックしてメニューをプルダウンすればユーザを加えることができる。もちろん、加えるユーザをadminグループに入れてはいけない。
20130821owndloud_admin_mode
各ユーザは自分のdirectoryを持つことになるので、その中で新規のフォルダを作成することができる。アップロードは端末のファイルをドラッグドロップすればいい。
最大容量はデフォルトで512MB となっている。これを変更するためには、管理者でログインして、メニューの管理者を開いて設定する。しかしそれだけではだめで、
/library/server/web/data/sites/default/owncloud/.htaccess

php_value upload_max_filesize 512M
php_value post_max_size 512M
php_value memory_limit 512M

php_value upload_max_filesize 4G  //4Gに変更
php_value post_max_size 4G  //4Gに変更
php_value memory_limit -1  //-1に変更
php_value max_execution_time -1  //追加
php_value max_input_time -1  //追加

と変更する必要がある。未確認だ。だいたい512MBの容量のファイルをアップロード/ダウンロードするのは環境によって、えらい時間がかかるにちがいない。
でも16Gに増やしておいた。誰にも制限されないのが自分自身が持つサーバなんだからな。
収容場所を増やすとゴミが増えるだけなのはパソコンだけの話ではない。そうだろ?棚を作ればすぐいっぱいになって捨てることはしないだろ?クローゼットだって、でかければ、もはや着る事の無い服がぶらさがっていることになるだけだ。
でも、例えばlocalのデスクトップを丸ごとアップして、同期を取るようなことにしておけば、最初は大変だが、あとで楽になるかもしれない。
多くの場合、作業中のファイルはデスクトップに置く。作業が一段落したら書類とかマイドキュメントに整理/移動することになる。作業中のファイルを同期するためにはデスクトップをownCloudに置き、同期アプリを使うことになるが、現実的ではないだろうな。デスクトップだけでも35GB、書類も46GB使っている。HDが安くなってどんどん肥大化して、いらないものまでともかく積んでおくからだ。
だからといって作業中のファイルを専用フォルダに納めてから作業するなんてことやってられないしな。ときどきデスクトップを綺麗に片付けるだけだからな。
ownCloud は使い道があるだろうか?ま、いまのところサーバのHDに余裕があるから、使えるよ ということにしておくか。グループを作りshare フォルダを公開すれば特定のグループ所属のユーザにファイルを分配することもできるが、グループのメンバーを作ったり管理するのが面倒だし….
昔、シアトルに留学することになった大学院卒業生に、こちらの研究室とでファイルの交換をするのでなにか共用directoryを作ってくれと頼まれたことがあった。当時はHD容量も少なかったので、外付けHDを購入するのならという条件で作成してあげた。その結果、当の大学院卒業生は、日本にいる家族にTV録画をパソコンで見えるように変換する方法とアップロードする方法を教えて、シアトルで日本のTVドラマを楽しんでいたのだ。シアトル在住の日本人と一緒に紅白歌合戦を楽しんでいたのだ。なんて奴だ。奴といっても女だ。

Roundcube のプラグイン

WebメールのRoundcube をインストールしたものの、あまりにもシンプルで、おまけ機能がない。
Squirrel mail は不細工だが、多くのユーザがいて情報が多く、さまざまな機能がある。
Roundcubeは見た目がいい。そこでプラグインを加えてみようとした。
Roundcube にインストール時に始めから用意されているプラグインは
acl
additional_message_headers
archive
autologon
database_attachments
debug_logger
emoticons
enigma
example_addressbook
filesystem_attachments
help
hide_blockquote
http_authentication
jqueryui
managesieve
markasjunk
new_user_dialog
new_user_identity
newmail_notifier
password
redundant_attachments
show_additional_headers
squirrelmail_usercopy
subscriptions_option
userinfo
vcard_attachments
virtuser_file
virtuser_query
zipdownload
である。どれが何のサービスするのかわからん。
まず、メールのフィルタリングのプラグイン、managesiev だ。
http://trac.roundcube.net/wiki/Plugin_Repositoryによると、プラグインを有効化するためには;

A plugin is not used until you enable it by adding its directory name to the config option plugins, as an array element. This is done by editing your local config/main.inc.php file. Only plugins listed in the array will be enabled.
For example, to enable plugins named additional_message_headers and archive, config/main.inc.php should contain this line:
$rcmail_config[‘plugins’] = array(‘additional_message_headers’, ‘archive’);
To disable a plugin, just remove it from the list.

というわけで、
/library/server/web/data/sites/default/roundcubemail-0.9.2/config
の main.inc.php を書き換える。バックアップをmain.inc.php.20130820として保存しておく。
421行目あたりに

// ———————————-
// PLUGINS
// ———————————-
// List of active plugins (in plugins/ directory)
$rcmail_config[‘plugins’] = array();

というのがあるのでarray()の括弧内にシングルクオートでくくってプラグインの名前を記入する。複数あるときは , で区切る。
$rcmail_config[‘plugins’] = array(‘managesieve’); と’managesieveを加筆した。
でwebmail のページにアクセスしてログインして、設定を選ぶと
20130820sieve
フィルターが加わる。でフィルターをクリックしてフィルターを作成しようとすると、「サーバに接続できませんでした」とのエラーだ。
あちこち、ググってみたけどよくわからん。どうやら
/library/server/web/data/sites/default/roundcubemail-0.9.2/plugins/managesieve
にconfig.inc.phpを作らないとだめなようだ。 config.inc.php.dist があるから、これを元に作成する。

sh-3.2# cp config.inc.php.dist config.inc.php

ですね。でconfig.inc.phpを開いてみると17行目に
$rcmail_config[‘managesieve_auth_type’] = null;
とある。Roundmailそのものの設定のときAuthenticationをPLAIN にしたらよかったので null を PLAIN と書き換えて問題は解決。
あちこちのサイトでポートを2000にするとかしないとかが書いてあるが0.9.2ではポートの指定などしなくていいようだ。そりゃそうだろ。httpのメールなのに、そしてユーザのパソコンは普通firewallの中にあるわけで、firewallに穴をあけることができるのはネットの管理者だけで、管理者はRoundcubeのために穴なんか空けてくれないからな。
他のプラグインは?ということで、あちこちみていたら、Pulugin Manager というのが便利らしい。
plugin_managerの主な機能は;
1- ユーザーレベルでのプラグインのコントロール
2- データベースの整頓とユーザ・プライバシー確保
3- 単純化されたプラグインの分配
4- プラグインのアップデート
5- プラグインのRoundcube バージョン依存性情報
6- 一体化けした現地化とその分配
7- 現地語へ翻訳とトラッキング
8- プラグイン報告システム
9- リリース・ノートと最新のドキュメンテーション
そこで;
http://myroundcube.com/myroundcube-plugins/plugin-manager/plugin-manager-center
からplugin_manager をダウンロードする。解凍する。
/library/server/web/data/sites/default/roundcubemail-0.9.2/plugins
に入れ
sh-3.2# chown -R root:wheel settings
sh-3.2# chown -R root:wheel qtip
sh-3.2# chown -R root:wheel plugin_manager
sh-3.2# chown -R root:wheel http_request
sh-3.2# chown -R root:wheel db_version
sh-3.2# chown -R root:wheel codemirror_ui
とオーナーをrootにしておく(必要があるかどうか知らない)
/library/server/web/data/sites/default/roundcubemail-0.9.2/config
の main.inc.php を書き換える。バックアップをmain.inc.php.20130820として保存しておく。
// ———————————-
// PLUGINS
// ———————————-
// List of active plugins (in plugins/ directory)
$rcmail_config[‘plugins’] = array();
の部分を探す。421行目あたりですな。
$rcmail_config[‘plugins’] = array(‘plugin_manager’);
で、webmail のページにアクセスし、ログインして、右上の
20130820roundcubesettings
設定をクリックすると
20130820pulugin_manager
という表示がでてくる。指示にしたがって、
/library/server/web/data/sites/default/roundcubemail-0.9.2で

sh-3.2# vi adxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.myrc

というファイルを作成する。
作成されたのを確認して
20130820plugin_manafger_crypt
再び、webmail の設定ページ
20130820roundcubesettings_done
で  Done  をクリックする。
20130820pulugin_manager_pane
とManager Pluginsが出現する。
これだけだとよくわからんのでさらに
$rcmail_config[‘plugins’] = array(‘plugin_manager’,’settings’,’qtip’,’http_request’,’db_version’,’codemirror_ui’,’managesievel’);
と書き加えた。プラグインを検索してダウンロードしたりすることができるようだ。こっちのほうはテストしていない。動いているようだということを見ただけ。
それぞれのPlugin のconfigファイルを書き換える必要があるのだろうけど、まだこの時点ではやってない。
プラグインを有効化するのに、いちいちconfigファイルをエディタで書き換えるのは泥臭い。まだバージョンが1にもなっていないからだな。まだまだ完成していないんだ。Squirrel mail のほうがいいかも。しかしLion ServerのときはAppleはインストールしていたんだろ?なぜやめたんだろ?
プラグインのリストはRoundcube本家にある。plugin_manager はインストールしても一般ユーザが使えそうも無いのではずした。教えるのも面倒だからな。ほかのプラグインも魅力的なのがない。つかいこなしていって、必要と思われるのを順次加えることにする。

今年の夏休み

今年の夏休みは暑くて大変だった。暑さはまだ続くらしい。今週一杯は続くらしい。
で、今年の夏休み、8月10日(土)〜8月18日(日)までにやったことは;
8月10日はOpen Campus に割り当てられたので出勤。
それからは、「管理者のような じじい は暑いから外に出るな、熱中症で病院に運ばれた人の50%以上は じじい と ばばあ だ。家にひっこんでクーラをつけて、沈殿していろ」 というニュースばかりで、単純な管理者はこれに従ってしまったのだ。もっとも、何の予定もなかったからな。
8月17日朝7時頃、このサーバの設置してある建物が耐震の改築工事があるので停電となるから、サーバとUPSをシャットダウンしに行った、ほかのサーバもだ。
8月18日(日)午後6時過ぎに、停電が回復するので、サーバ群を再起動しに行った。
というわけで、することのない小心者は悪事に走るところだが、悪事はしなかった と思う。
連続TVドラマのCSI、Hawaii-five-O 、Person of Interest、とか高校野球、プロ野球、世界陸上なんかを見ながら、ゴロゴロして、ときどきこのサーバにWebmail をインストールしたりしていた。沈殿したままというわけだ。
太ったかもしれない。体重計には乗らないことにする。
掃除機を使ったら集埃袋が満タンで、排気ガスが変な匂いになっていた。集埃袋の中でなにかが発酵していたに違いない。交換した。多分、1年ぶりだ。
夏休み最終日に机の足に右足小指をぶっつけで内出血。まだ痛い。骨折はないだろうな。
あー、非生産的な夏休みだった。ま、じじいは消費活動だけだからな。

Webメールのインストール

Mountain Lion Server (10.8サーバ、OSXサーバ)にはWebmail がない。そこでWebメールとしてRoundcube を選んでみた。
roundcubemail-0.9.2 である。
ダウンロードして解凍した。できたフォルダはroundcubemail-0.9.2である。
操作はrootになってからの方が楽なのでrootになって実施する

$ su
Password:

ですな。
ダウンロードし、解凍したroundcubemail-0.9.2を
/Library/Sserver/Web/Data/Sites/Default/ に移動させる。
オーナーをroot:wheel にしておく。

sh-3.2# chown -R root:wheel roundcubemail-0.9.2

さらに /Library/Sserver/Web/Data/Sites/Default/roundcubemail-0.9.2で
Webサーバがtempとlogsフォルダの書き込みが可能になるようにオーナーを変更する。

sh-3.2# chown -R www:www temp
sh-3.2# chown -R www:www logs

確認する

sh-3.2# ls -al
total 192
drwxr-xr-x@ 20 root wheel 680 6 17 00:10 .
drwxr-xr-x 9 root wheel 306 8 15 14:12 ..
-rw-r–r–@ 1 root wheel 1344 6 17 00:10 .htaccess
-rw-r–r–@ 1 root wheel 12895 6 17 00:10 CHANGELOG
-rw-r–r–@ 1 root wheel 8901 6 17 00:10 INSTALL
-rw-r–r–@ 1 root wheel 35147 6 17 00:10 LICENSE
-rw-r–r–@ 1 root wheel 4022 6 17 00:10 README.md
drwxr-xr-x@ 10 root wheel 340 6 17 00:10 SQL
-rw-r–r–@ 1 root wheel 2712 6 17 00:10 UPGRADING
drwxr-xr-x@ 14 root wheel 476 6 17 00:10 bin
-rw-r–r–@ 1 root wheel 381 6 17 00:10 composer.json-dist
drwxr-xr-x@ 6 root wheel 204 6 17 00:10 config
-rw-r–r–@ 1 root wheel 11999 6 17 00:10 index.php
drwxr-xr-x@ 10 root wheel 340 6 17 00:10 installer
drwxr-xr-x@ 3 _www _www 102 6 17 00:10 logs
drwxr-xr-x@ 31 root wheel 1054 6 17 00:10 plugins
drwxr-xr-x@ 9 root wheel 306 6 17 00:10 program
-rw-r–r–@ 1 root wheel 26 6 17 00:10 robots.txt
drwxr-xr-x@ 4 root wheel 136 6 17 00:10 skins
drwxr-xr-x@ 3 _www _www 102 6 17 00:10 temp

シンボリックリンクの作成

sh-3.2# ln -s /Library/Server/Web/Data/Sites/Default/roundcubemail-0.9.2 webmail

これで http://example.com/webmail/installer/でRoundcubeのインストール・ステップにアクセスすることができる。
データベースの作成
phpMyAdmin でエータベースを作成。データベース名をroundcubemailとした。
アクセスできるユーザにroundcube;localhost;パスワードxxxx、特権はすべて可としておいた。
http://example.com/webmail/installer/
にアクセスしたら;
20130816roundcube-1
となった。赤字がエラーだ。
Mcrypt: NOT AVAILABLE(See http://www.php.net/manual/en/book.mcrypt.php)
Intl: NOT AVAILABLE(See http://www.php.net/manual/en/book.intl.php)
SQLite (v2): NOT AVAILABLE(See http://www.php.net/manual/en/ref.pdo-sqlite.php)
SQL Server (SQLSRV): NOT AVAILABLE(See http://www.php.net/manual/en/ref.pdo-sqlsrv.php)
SQL Server (DBLIB): NOT AVAILABLE(See http://www.php.net/manual/en/ref.pdo-dblib.php)
ができていないということだ。拡張機能が動いていないという警告とデータベースがないという警告だ。
拡張機能のMcrypt: NOT AVAILABLE については、設定したはずなのにと思って、/etc/php.ini を見たら加筆した部分が消えている。OSアップデートしたときに書き換えられちゃったにちがいない。

[mcrypt]
; For more information about mcrypt settings see http://php.net/mcrypt-module-open
; Directory where to load mcrypt algorithms
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.algorithms_dir=
; Directory where to load mcrypt modes
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.modes_dir=
extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so

と太字の部分 extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/mcrypt.so
を書き加えておいた(サーバ構築の記録34項参照)。
Intl: NOT AVAILABLEについては、MACPORTで探してみた。intl とはなんやら国際化の意味である。
/opt/local/bin で

sh-3.2# ./port search intl

としたら

php53-intl @5.3.23 (php, devel)
internationalization extension for PHP

というのがあったから、phpのバージョンの一致するやつ-php53-intl-をインストールした。

sh-3.2# ./port install php53-intl
Warning: port definitions are more than two weeks old, consider using selfupdate
—> Computing dependencies for php53-intl
—> Dependencies to be installed: icu
—> Fetching archive for icu
—> Attempting to fetch icu-49.1.2_1.darwin_12.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/icu
—> Attempting to fetch icu-49.1.2_1.darwin_12.x86_64.tbz2.rmd160 from http://jog.id.packages.macports.org/macports/packages/icu
—> Installing icu @49.1.2_1
—> Activating icu @49.1.2_1
—> Cleaning icu
—> Fetching archive for php53-intl
—> Attempting to fetch php53-intl-5.3.23_0.darwin_12.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/php53-intl
—> Attempting to fetch php53-intl-5.3.23_0.darwin_12.x86_64.tbz2.rmd160 from http://jog.id.packages.macports.org/macports/packages/php53-intl
—> Installing php53-intl @5.3.23_0
—> Activating php53-intl @5.3.23_0
—> Cleaning php53-intl
—> Updating database of binaries: 100.0%
—> Scanning binaries for linking errors: 100.0%
—> No broken files found.

表示されたWarning:はとりあえず無視した。
/opt/local/lib/php53/extensions/no-debug-non-zts-20090626
にintl.soがインストールされたことを確認した、
で、PHP に認識させるために /etc/php.ini に加筆する。どこに書いたらいいのかわからないので、とりあえず一番下に

[International language]
extension=/opt/local/lib/php53/extensions/no-debug-non-zts-20090626/intl.so

と記入した。
これで
http://example.com/webmail/installer/
に再度アクセスしたらOKとなった。
データベースは At least one of them is required.とあるんだから、そしてMySQL: OKとなっているのだからいいのだろう。
そんでInstallerを先に進めた。
データベース名、データベースユーザ名、パスワードは先にphpMyadminで決めた通りだ。smtpサーバのところだけ書き加えた。あとはデフォルトのまま。
configファイルを2つ作るというところでは指示にしたがった。
Download が一番間違いないから2つのファイル、db.inc.phpとmain.inc.php をダウンロードし、/Library/Server/Web/Data/Sites/Default/roundcubemail-0.9.2/config内に入れた。
owner をほかのファイルと同じようにroot:wheel とした、アクセス権は644のままだがいいのだろうか?
Check DB Config でデータベースはいいが DB Schema: NOT OK(Database not initialized) とでてきたので その下のボタン(refresh だったかな)をクリックして解決。
Test SMTP config で
Sender: hoge@localhost
Recipient: hoge@localhost
と入力して Send test mail をクリックしてhoge宛てにメールがきていることを確認した。
Test IMAP config で
Server: localhost
Port:143
Username:hoge(このサーバのユーザ名)
Password:xxxxxx(ユーザのパスワード)
を入力したら
Connecting to localhost…
IMAP connect: NOT OK(Login failed for hoge from 192.168.xx.xx. Authentication failed.)
だって。
どうやら、パスワードの暗号化の部分でひっかかっているんだろ。http://example.com/webmail/ でRoundcube の最初のページがでて来る。ユーザ名とパスワードを入力しても通らない。同じ理由からだ。
再度、installer のページから設定する必要があるようだ。このままinstallerのページにだれかがアクセスすると面倒なことになるから、installerを一時的に使えないようにしておいた。
明日、明後日とこのサーバのある建物が停電なので、で、また、今日はアルコールを体が要求しているのでここまでだ。続きは来週だな。
一発で動くとは思っていなかったし、問題にぶつかるたびに、TVの推理ドラマを見に行っちゃうとか、他のことをするからなかなかできない。夏休にやるとこういことになる。普段の仕事がつまっているときにやると、もっと早くなるのだが。
停電明けに実施して成功した。
main.conf.php の85行目

// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use
// best server supported one)
$rcmail_config[‘imap_auth_type’] = NULL;

の太字の NULL を PLAIN に書き換える。

// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null to use
// best server supported one)
$rcmail_config[‘imap_auth_type’] = PLAIN ;

ですね。
これで http://example.com/webmail/ にアクセスして loginできる。送受信ができることを確認しておしまい。
[追加情報]
★ Installer を再度起動して始めからやり直すためには、
/library/server/web/data/sites/default/webmail/config
にあるmain.inc.phpの185行目が

// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
// ONLY ENABLE IT IF YOU’RE REALLY SURE WHAT YOU’RE DOING!
$rcmail_config[‘enable_installer’] = false;

となっているから、この false を true に書き換える。


もう既に、出来上がっちゃって、さらに変更するためには;/library/server/web/data/sites/default/webmail/config/main.inc.php を直接書き換えちゃった方がはやいと思う。
★ もしconfigファイルを作成のときデフォルトのホスト名を空欄にすると、ログインのとき、ユーザ名とパスワードとホスト名を聞いてくる。ホスト名は改めて入力する必要がないのだから、78行目を
$rcmail_config[‘default_host’] = ‘example.com‘;
と太字の部分に自分のドメインを書き加える。
★ さらにScure な設定をするためには(まだやってないから確証はない);
LANCARD.LABによると
IMAPサーバの指定と設定
78行目
$rcmail_config[‘default_host’] = ”;

$rcmail_config[‘default_host’] = ‘ssl://imap.example.com:993’;
81行目
$rcmail_config[‘default_port’] = 143;

$rcmail_config[‘default_port’] = 993;
85行目
$rcmail_config[‘imap_auth_type’] = PLAIN;

$rcmail_config[‘imap_auth_type’] = *****;
*****にDIGEST-MD5、CRAM-MD5、LOGIN、PLAIN のどれかを入力する(どれがどれか、ユーザのメールソフトがPLAIN以外にどれに対応しているかによって決めないといけない。たいていのメールソフトは自動的に設定してくれると思うが。)
SMTPサーバを指定して設定する
146行目
$rcmail_config[‘smtp_server’] = ”;

$rcmail_config[‘smtp_server’] = ‘ssl://example.com’;
150行目
$rcmail_config[‘smtp_port’] = 25;

$rcmail_config[‘smtp_port’] = 465;
154行目
$rcmail_config[‘smtp_user’] = ”;

$rcmail_config[‘smtp_user’] = ‘%u’;
158行目
$rcmail_config[‘smtp_pass’] = ”;

$rcmail_config[‘smtp_pass’] = ‘%p’;
さらに
/library/server/web/data/sites/default/webmail/config/db.inc.php の
32行目
$rcmail_config[‘db_dsnr’] = ‘mysql://roundcube:pass@localhost/roundcubemail’;

//データベースのユーザ名とパスワードを入力
$rcmail_config[‘db_dsnw’] = ‘mysql://root(ユーザ名):******(パスワード)@localhost/roundcubemail’;
とするのがいいようだ。
まだ実施していない。

imap が動いている?

Mountain Lion (10.8) Server では以前の10.6 のときと異なり、サーバ管理ソフトからPOP3とIMAPを独立して制御できない。Server.app ではメールサーバをON-OFFどちらかにしか設定できない。ONにしたらPOPサーバが動いているのはメールが使えるので確認できるが、IMAPはルータを設定していなかったことから確認できなかった。
IMAP の動作確認は;
http://www.lins.jp/~obata/imap/uw-imapd.html を参考にした。
サーバでターミナルを起動し、telnet でポート143で接続してみる。

$ telnet localhost 143
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=CRAM-MD5 AUTH=X-PLAIN-SUBMIT AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN AUTH=GSSAPI] Dovecot ready.

このような表示が出れば動いていることが確認できる。さらにユーザ名でログインし、メールボックスがちゃんとしているかどうかの確認ができる。IMAPのコマンドは、頭にコマンド番号をつける必要がある。番号をつけなかったから、最初はなにやってもエラーだった。下の例ではコマンド番号が A03 でlogin すると 同じコマンド番号が頭についた形で返事が来る。A04 というコマンド番号でメールボックスがどうなっているかを見て、A06 でlogout したわけだ。コマンドに大文字小文字の区別はない。

A03 LOGIN [ユーザ名] [パスワード]
A03 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS COMPRESS=DEFLATE X-FTS-COMPACT QUOTA URLAUTH] Logged in
A04 SELECT INBOX
* FLAGS (Answered Flagged Deleted Seen Draft NonJunk)
* OK [PERMANENTFLAGS (Answered Flagged Deleted Seen Draft NonJunk *)] Flags permitted.
* 37 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1346028720] UIDs valid
* OK [UIDNEXT 1091] Predicted next UID
* OK [HIGHESTMODSEQ 2698] Highest
* OK [URLMECH INTERNAL] Mechanisms supported
A04 OK [READ-WRITE] Select completed.
A06 logout
* BYE Logging out
A06 OK Logout completed.
Connection closed by foreign host.

IMAP のコマンドは他に色々あるはずだが、いじることはないので、調べることもしないよ。