「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 のコマンドは他に色々あるはずだが、いじることはないので、調べることもしないよ。

メーリングリストの更新

夏休みになり、時間がとれるのでメールングリストの更新を試みている。

合計700名くらいで学年、クラス別なので1つのメーリスに40〜50名登録してある。メールがとどいていないのが40名。1年生には皆無。2年生以上になると、管理者の威光が及ばす、メアドを変更しても届けてくれない。1年生は、何回も生理学の連絡が行くからメールが届かないのは大きな損失になるからな。

2年生以上には、本来の業務以上のサービスをメーリスを使ってやってあげているのに、屁とも思っていないんだろ。

まんが日本昔話から「へや」の語源について。「屁ひり女房」の一場面.。

20130810fart_wife

このくらい迫力あると、学生も意識するんだろうな。

 

Mailman 普通配送メールを個人別にカスタマイズ

Mailman は受信者個別にメールを送付することができる。

/usr/local/mailman/Mailman のmm_cfg.py の一番下に以下の太字部分を書き加える。

# Put YOUR site-specific settings below this line.
MTA = ‘Postfix’

#Enale personalization.
OWNERS_CAN_ENABLE_PERSONALIZATION = Yes
VERP_PERSONALIZED_DELIVERIES = Yes

これで、ユーザに個別配送ができるようになる。

普通配送オプションに

20130808mailman

という欄が出現し、例えばヘッダーに各ユーザの名前を入れたりすることができる。pesonalizeの詳細を見ればその方法が書いてある。

普通配送オプション → 普通配送メールを個人別にカスタマイズしますか?   はい を選択し

普通配送会員へのメールに付けるヘッダ に %(user_name)s様 と入力すると、

20130809mailman-1

となり、宛先=To:がメーリングリストのアドレスに、本文の始めにユーザの名前=登録メールアドレスが自動的に入力される。

普通配送オプション → 普通配送メールを個人別にカスタマイズしますか?   完全個人別配送 を選択し

普通配送会員へのメールに付けるヘッダ に %(user_name)s様 と入力すると、

20130809mailman-22

となり宛先=To: が個別の登録メールアドレスに、Cc: にメーリングリストのアドレスが書き込まれ、本文の始めにユーザの名前=登録メールアドレスが自動的に入力される。

普通配送オプション → 普通配送メールを個人別にカスタマイズしますか?   いいえ を選択すると

20130809mailman-3

普通のメーリングリストとして配信される。このときヘッダーに変数のある文字列 %(user_name)s様 があるとエラー表示になる。そのまま強引に使うと、本文の始めに%(user_name)s様そのままが入力されてしまう。

 

この個別配送の方法は、Mailman のあるサーバが個別にメールを処理するので、サーバに負担がかかる。たった4つのアドレスしかないメーリングリストでも、個別配送にすると、一瞬、受け取りが遅くなるから、登録者が多数のときは配信が遅延するだろう。

docomo には個別のメールになるから、だれかが受信拒否していてもdocomoで勝手に迷惑メールとして排除しない可能性がある。やってないからわからないけど。

このdocomo問題に困っているのだ。50名程度の学生の携帯メール宛のメーリングリストがあって、25アドレスからUser unknown のメールがもどってきた。そのうち、6名は、個別にメールを送ってもUser unknown となる。つまりメールアドレスを変更したのだ。残る19名はすべてdocomoユーザであって、これらに個別にメールを送ると届くようで、メーリスで送ってUser unknown となったメールも受け取れているのだ。

このUser unkown のエラーが毎回くるわけではない。これが何故かわからない。ときどき来るのだ。

19名全員が受け取れたかどうかわからない。6名からメーリスからのメールも受け取ったとの返事があった。残り13名は返事がない。学生に返事を求めても返事が帰ってこないというのは、管理者にはこれら学生50名の学生に何の権限もないからだ。こいつらはもう生理学の単位を習得したからだ。アカハラの対象にならない学生というわけだ。こういう奴らにもサービスするのがいやになっちゃう。

一部はPCからのメールを受信拒否している可能性がある。しかし、このようなエラーが帰ってくるとMailman の方は送付できなかったとカウントするので、何回かメーリスからメールを送るとエラーが蓄積してMailmanは自動的に[ B ] マークがついて送信しなくなってしまうのだ。いちいち監視できない。

携帯・スマホは勝手に自由にメールアドレスを変更できるのが厄介の元で、学生はメールアドレスの変更を絶対といっていいほど届け出ない。ガラケーからiPhone に変更する学生が結構いる。docomo だったのがezwebとかi.softbankとかに変わっているからな。機種を変えても変更届けはない。

携帯・スマホが、もはや遊びの道具ではなく、重要な連絡手段になっているという認識は学生にない。

スマホにはメールの種類がいっぱいあってLine も加わってなんだかわからん。softbank.ne.jp とi.softbank.jp があるしezwebでは利用者が使い分けるらしい。学生には携帯で大学が配布しているメアドのメールを読めるように設定させる方がいいのかもしれない。そして受信したら必ず音がでる、画面に表示されるとかに設定させるのがいいのかもしれない。スマホには複数モデル(あるいはOS)と複数の電話会社があるからすべての種類の設定方法をこっちが知らないといけない。そんなのいやだ。

具体的な設定方法を教えないと学生はやらないし…..

Illustrator でsine波を描く方法

このAdobe のページから;

1)求めるサイン波の長さの水平直線を描く(勿論後から変更可能)

2)メニューバーの 効果 パスの変形 ジグザク を選ぶ。

20141017sinewave-0

ジグザグウインドウのオプション;

20141017sinewave-1

大きさ:サイン波のpeak-to peak(振幅の2倍)を設定する

折り返し:周期の数だが、1で1周期、2で1と1/4周期、3で2周期、….  プレビューにチェックをいれて確認する

ポイント:滑らかに でサイン波、直線的に で三角波になる

以下は折り返し3にした例である。このままだとオブジェクトは要素に分割されていないので;

3)メニューバーの オブジェクト から アピアランスの分割 を選ぶ。

20141017sinewave-2

こうすると幾つかの要素の集合としてのオブジェクトになるので加工しやすくなる。

20141017sinewave-3

 

しかし、このままだとアンカーポイントがピーク/ボトムにしかないので加工しにくい。そこで;

4)メニューバーの オブジェクトから パス アンカーポイントの追加 を選ぶ。

20141017sinewave-5

 

これで、角度でいうと0度、180度の部分にアンカーポイントが加わる。

5)あとは、ハサミツールで切断したり、大きさを変えたり自由に変形する。

 

また別の方法だが、うまくファイルを開いてくれないかもね。

ぴょぴょぴょ? – Linuxとかプログラミングの覚え書き から丸ごとコピー

N=100;
SCALE=50;

PI=3.14159265;
for (t=0;t<N;t++) {
line = activeDocument.pathItems.add();

y0 = Math.sin(t/N*2*PI)*SCALE;
y1 = Math.sin((t+1)/N*2*PI)*SCALE;

line.setEntirePath([[t,y0],[t+1,y1]]);
line.filled = false;
line.stroked = true;
line.selected = true;
}

をテキストファイルとして保存し、拡張子を.js にしておく。つまりsin.jsですな。
イラストレータを立ち上げ、新規ファイルを作成し
ファイル → スクリプト → その他のスクリプト で作成したsin.jsを選ぶと、左上にサイン波が出てくる。1周期分だ。

20130807Illustrator_sine_wave

 

こんな感じですな。

理由がわからないが、作成したファイルを別フォルダにいれたりすると読み込まれない。6、7行目のsin をcos に置き換えるとcosine波が描けるはずなのにsin波になっちゃう。どうやらillustrator のほうで一度読み込んだファイルが消去されていないのか…まだわからない。

Illistrator を再起動しただけではだめだった。Mac を再起動したら問題はなくなった。

このスクリプトは100本の直線を、始点と終点のX、Yを指定してつくるものだからバラバラにできる。100ヶのオブジェクトの集合だからグループ化しないと悲惨な目に遭う。

このファイルをどこに置いたらいいんだろ?わからないから~/users/Application Support/Adbe/Adobe Illustrator/にフォルダを作って置いた。また忘れちゃうんだろうな。バージョンを上げるとなくなっちゃったり…..

Backup用HDを変更した

バックアップ用HDを変更した。Mac Pro なので、HD用のBay が4つある。

起動ディスクであるHDはbay1に入れた1TBのHDで140GB使っている。このバックアップとして、TineMachine 用HDがあって、2TBの容量で2013.1.3から今日までが保存されており1.6TB使っている。こいつはいっぱいになったら古い方から消えていくことになっているはず。もう一つ2TBのHDを入れてあって、CarbonCopyCloner(CCC) のバックアップ先とし、バックアップを作成した。今日作成したので使っているのは本来の起動ディスクであるHDとほぼ同じ容量を使っていることになる。もう一つのbayに1TBのHDを突っ込んであり、こいつには4月1日から本日(8月5日)午前1時現在までのバックアップがある。このHDはいずれ消去されることになるが、トラブルが生じたときのため、しばらくこのままでおいておく。850GB使っている。

単純計算するとTimeMachineだと半年で10倍に増える。

まだ、Server.app とシステム環境設定からのTimeMachineの設定の違いがよくわかっていない。Server.appからは本体だけでなくほかのHDのバックアップができるのはわかるが、両方同じ設定にしたらどうなんだろ。現在はシステム環境からの設定にしているがこれだと復元ができないのかな?

まだ今週はいろいろ使うユーザがいるから、来週からはじまる夏休みにまたいろいろいじってみることにする。

Blogのリンクの文字の色

このBlogはWordPress でThemeはNitrousを使っている。

Nitrousではリンクされている文字の色が指定されていないのでわかりにくい。リンクされている文字の色についての決まりはないが、たいてい0000ff の場合が多い。そこでスタイルシート (style.css) を書き換えた。header も footerもside barも一括してリンク文字の色、形を設定するようになっている。

外観(Theme)>テーマ編集>スタイル>スタイルシート (style.css) 見ると

/************************************************
* Hyperlinks *
************************************************/
a, a:visited {
color: #0B3949;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}

となっている。これを

************************************************
* Hyperlinks *
************************************************/
a, a:link {
color: #0000ff;
text-decoration: none;
}
a, a:visited {
color: #800080;
text-decoration: none;
}
a:hover {
color: #ff0000;
text-decoration: underline;
}

に書き換えた。
a:link { color: #0000ff; } … 未訪問のリンク
a:visited { color: #800080; } … 訪問済みのリンク
a:hover { color: #ff0000; } … ポイント時のリンク
a:active { color: #ff8000; } … 選択中のリンク
の意味だ。ink 、visited、hover、active の順で記述する必要があるらしい。

サーバ構築の記録

サーバ構築の記録はこのブログに投稿しているわけだが、トラブルがあってブログが見えないと、なにをやったかの記録がなくて困ったのだ。

やっぱし、紙ベースのログを保存すべきなんだろうな。

とりあえず、目次を作った。ユーザの追加等の細かいところは記録しないが、その方法だけは記録していくことにしたい。するかどうかわからんけど、

まだわかってない

OSX(10.8.4)Mountain Lion Server がまだよくわかってない。

Server.app から変更するのと、ターミナルを使ってコマンドラインで変更するのをごちゃ混ぜで実施するとなにがなんだかわからなくなっちゃう。Server.app で変更したのがどのファイルを書き換えるのかがわかってないからだ。

この秋には10.9 Mavericks になる。当然、バージョンアップは行うが、そのうちということで、来年の春だろうな。Mountain Lion Server にしたとき、情報がなくて苦労したからな。だからといって、そのときはLion Server は手に入らなかったし。

Maverickとはカルフォルニアの海岸名だというが、ちがうだろ。異端児とかいう意味なのでは?こっちのほうが合う。

昔、TVドラマでMaverickというJames Garner主演の西部劇があった。Mel Gibson主演の映画にもなったな。James Garnerはその後、「じじい」だけが宇宙飛行士になって、ロシアの核ミサイルを積んだ人工衛星が古くなって地球にミサイルを打ち込みそうになったのを救うという映画にも出ていたな。TVドラマから何年たったんだろ。管理者も「じじい」になったわけだ。

トラブルで知ったコマンドーsshで起動ディスクを変更

トラブルがないとコマンドを憶えない。あったからといっても、いつまでも憶えているわけじゃない。

OSXサーバの起動ディスクをリモートで変更するには;
ssh でリモートからログインする。

$ cd /volumes
$ ls
CCC-Backup M TimeMachine previousM
$ sudo bless -mount /Volumes/M -setBoot
Password:
$ sudo reboot now

まず、起動HDの名前を確認する。 上の例では4つのHDがあることを示している。
起動ディスクを変更する。 上はMに変更した場合だ。
再起動する。

いやーまいった。アップデートしたらphpファイルが….

アップデートしたらphpで記述されたページがソースコードを表示してしまう。
静的なページやCGIには問題がない。

もし同様のトラブルで困った人が、Googleとかでたどりついたら、その人の為に結論だけ先に書いて挙げるのが親切だ。
#################
セキュリティアップデート 2013-003を実施すると/Library/Server/Web/Config/apache2のhttpd_server_app.confが更新されてphpで書いたファイルがソースコードを表示してしまう。
httpd_server_app.conf の#LoadModule php5_module modules/libphp5.soがコメントアウトされているので、#を削除して有効にする=moduleが使えるようにすれば良い。
#################

このサーバのOSはMountain Lion (10.8.4)Server なのだ。Apple が7月2日にセキュリティアップデートを発表した。学期末で忙しかったのでうっちゃっておいた。

7月25日(木)にアップデートを実施したのだ。でそのままなにもチェックしなかったのだが、29日(月)になってBlogに書き込む仕事ができて開いたら、php スクリプトがそのまま表示されている。php が動いていない訳だ。いや、動けるがapache2-php の連携ができていないのだ。これは、httpd.conf に;

LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

がコメントアウトされて(先頭に#がある)いるためだ。多分バージョンアップされたときhttpd.confが書き変わってしまったのだろう と高をくくっていたのだが…..

丸々2日、格闘した。現象が見つかった月曜日は解決できず、翌日は運がわるいことに医学のサーバがこけちゃったのと重なってしまったのだ。医学のサーバは業者に任せているとはいうものの、ユーザはそんなことはわからないから基盤室へクレームが来る。管理者には一般ユーザはクレームをよこさないが、ほんの一部のわがままおっさんが電話でどうなっていると問い合わせにくる。医学のサーバの原因はわかったのだが、サーバを再起動すると、あまりにもでかいHDをマネージしているもんで、再起動時にHDをチェックする操作に入り、10時間くらいかかってしまう。こっちのトラブルは管理者はなにもすることがないのでいいのだが、mikeの方は管理者が対応するしかない。

で、/etc/apach2/httpd.conf を見ると
LoadModule php5_module modules/libphp5.so はコメントアウトされており動くはず。

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
については;
/etc/apach2/httpd.conf に
Include /private/etc/apache2/other/*.conf
と書いてあり
/etc/apach2/other にphp5.conf というファイルがあり、このファイルに

<IfModule php5_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

<fModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>

とある(<>は全角で本来は半角英語)。問題ない。
そこで困ったわけだ。原因がわからない。

TimeMachine でいっそのことバージョンアップ前に戻しちゃえとおもったのだが、何故か、「復元」ボタンがアクティブにならない。FirstAid とかをやっているうちにアンマウントされてしまった。これは再度構築しないといけないようだ。だから復元できない。

さっさと気が付けばいいのだが、CarbonCopyCloner で別のHDにもバックアップしている。こいつは元のHDにあったファイルが変更されると、古いファイルを.CCC Archives としてバックアップ日時順に保存してある。
したがって、バージョンアップした直後の.CCC Archivesにあるファイルをみれば、バージョンアップで何が変更されたのかがわかる。で、見たらhttpd.conf もphp.ini も変更された形跡がない。

うーん、じゃなんだ?ということでググってみたりして、原因を探しまわったのだが、ほとんどのページは上記のコマンドのコメントをはずせというものばかりだ。

そんでもって、今日ようやく、もっと違う所のファイルが変更されたのではないかと気が付き、
/Library/Server/Web/Config/apache2
のhttpd_server_app.conf が.CCC Archives内のバージョンアップしたときの直後の日付のフォルダにあるではないか。だからこれが更新されたのだ。

で更新されたhttpd_server_app.confをみたら
#LoadModule php5_module modules/libphp5.so
となっているではないか。コメントアウトを解除(# を削除)してapache2を再起動して解決。

httpd.confのどっかにinclude… httpd_server-app.conf と書いてあるに違いないが直接は書いてない。どこにこのファイルを参照しろと書いてあるんだろ?

あー、アホだった。自分自身で書いてあるじゃん。
/Library/Server/web/config/apache2/ReadMe.txt によるとhttpd_server_app.conf は/etc/apache2/httpd.conf に取って代わるものとなっている。

このようなトラブルとかのためにサーバ構築の過程をメモしておいたのだが、このメモ=blog なわけで、blogが読めないと役にたたない。なんてこった。紙ベースのログが必要だな。

なんてことはない。webサーバを最初に作成したときに気が付いていたのだが、すっかり忘れているのだ。アホだな。学生に以前習ったろなんて言えなくなっちゃった。

で、このトラブルを解決している最中にCarbonCopyCloner からもうHDが満タンだから古いファイルを捨てるとかしろと言ってきた。とほほ…..

[ 約2年後の2015年6月 の追記 ]

また同じトラブルがあったよ。でこの記事が読めなくなって困った。全く反省していないのだ。

[ 約3年後の2016年5月 の追記 ]

また同じトラブルがあったよ。今回はブログを他に移転していたので、ふるいサーバの記事をみることができた。