会議室の予約

会議室をリモートで、予約状況が見える、予約できる というページを作れということになった。まだ関係部署との調節が済んでいないので、そのようなページを作るかどうかも決定していない。この辺が面倒なところだ。サービス自体はなんとかできた。
web会議室予約Klee というのを購入して改変した。この作者の応答が良かった。問題はMacOSX10.8のapache2が指定しているDocumentRoot との関係が簡単ではないことだった。そんで、この作者から、cgi が動くサーバ環境パラメータを表示するcgiソフトをもらった。結構便利だ。ここに公開することは作者の了解を得ていないのでできないけど。実行するとさまざまなパラメータを出力してくれる。

Apache/2.x.xx(Unix) PHP/5.3.15 with Suhosin-Patch mod_wsgi/3.x Python/2.x.x mod_fastcgi/2.x.x mod_ssl/2.x.xOpenSSL/0.x.x DAV/2 Server at example.com Port 80

SERVER_SOFTWARE  : Apache/2.x.xx (Unix) PHP/5.x.x with Suhosin-Patch mod_wsgi/3.x Python/2.x.x mod_fastcgi/2.x.x mod_ssl/2.2.22 OpenSSL/0.x.x DAV/2
とかだ。cgi可能な directoryに使えるようにセキュリティをしっかりして置いておくとかにしておくと新らしい設定ファイルをつくるときに便利だ。
MacOSX10,8サーバはあっというまに8.2 にバーションがあがった。まだβ版のようなものを販売したんだな。くそ。アップデートはおそろしいんだよね。何が変わったのかわからないから。変えた設定がもどちゃったりするからな。

Intranet内のネットワークスピード測定ーJperf

ip address がわかっている2台のWin機でファイルの転送速度を測定してみる。2台のPCがないとだめだからintranet内で1台のノートにインストールしてあちこちで測定すればいい。ルータが間にあるとだめでしょ。NATをやっていれば当然できないわけだ。
の Jperf をダウンロード
ダウンロードしたファイルを展開する。できたフォルダ Jperf2.0 .を C:Program Files (x86) に置く。
Windows 7では、java が必要。
path を設定する必要がある。マイコンピュータのプロパティから、システムの詳細設定、環境変数を開く。
環境変数にpathがないので
新規をクリックして
変数名に path
変数値に C:Program Files (x86)Javajre7bin
を入力する。
すでにpathがある場合は、[編集]をクリックして、最後に”;”(セミコロン)を追加して C:Program Files (x86)Javajre7bin を入力する(スペースを間に入れないこと)。
C:Program Files (x86)jperf2.0.0jperf.bat
をダブルクリックして起動する。
2台のパソコンに全く同様にインストールし、一方をServer に、他方を Client にして、
Client の方でServer address を入力して実行(右上の3つのアイコンの左端をクリック)すればいい。

とりあえずやってみた。
Note—(有線)—Gbit-Hub —(有線)— Desktop  という構成でどちらのPCのポートはGbitである。
Note as a client—Desktop as a server としてクライアントから実施すると 100Mbps
逆に
Desktop as a client—Note as a Server としてクライアントから実施すると 1000Mbps
なんじゃこりゃ?しかもUDPしか通らなかった。TCP は通らない。両方のあるいはどちらかのPCのFirewallのせいか?
Note—(無線 a/n 兼ルータ:Gbit)—Gbit-Hub —(有線)— Desktop ( 無線APの表示は150Mbps )では
Note as a client—Desktop as a server としてクライアントから実施すると 70Mbps
逆に
Desktop as a client---Note as a server としてクライアントから実施すると 1070Mbps
ま、無線のほうはこんなもんだろ。
クロスUTPケーブルで試すのが最初かな?

OSX10.8サーバ その21 apache2スタート・停止

Mの更新(Mountain Lion OSX10.8サーバ) その21 apache2スタート・停止
Server.app からWebサービスの停止・開始スイッチで切り替えればいいけど;
apache のコマンド
再起動: $ /usr/sbin/apachectl restart
停止: $  /usr/sbin/apachectl stop
起動: $  /usr/sbin/apachectl start
Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file]
[-C “directive”] [-c “directive”]
[-k start|restart|graceful|graceful-stop|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S]
Options:
-D name : define a name for use in directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C “directive” : process directive before reading config files
-c “directive” : process directive after reading config files
-e level : show startup errors of level (see LogLevel)
-E file : log startup errors to file
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-S : a synonym for -t -D DUMP_VHOSTS
-t -D DUMP_MODULES : show all loaded modules
-M : a synonym for -t -D DUMP_MODULES
-t : run syntax check for config files
-T : start without DocumentRoot(s) check

OSX10.8サーバ その20 はまっていること

Mの更新(Mountain Lion OSX10.8サーバ) その20 はまっていること
はまっていること。
1)Mailman のデータの移行
現在のサーバの
/var/mailman/lists/
/var/mailman/archives/
の2つのdirectories をコピーして
新規サーバの
/usr/loal/mailman/lists/
/user/local/mailman/archives/
とする。
owner:group は
root:_mailman
とした。
すべてのメーリングリストに設定を反映させるため

$ cd //usr/local/mailman/bin

$ ./list_lists -b | xargs -n 1 ./withlist -l -r fix_url
としたがだめ。
すべてのメーリングリストのアーカイブを再構築
$ ./list_lists -b | xargs -n 1 -i ./arch –wipe {}
/v/usr/local/mailman/archives/private/
{}.mbox/{}.mbox
とするらしいが実行していない。
多分移転先の仮のサーバのドメインがと一致していないからだろ。これを変更するより、サーバを止めて移転したほうがよさそうなので保留とした。メーリングリストが動いているので止めないと完全な移行ができない。
2)CGI がうごかない。→う動いた。シンボリックリンクではだめだからだ。.conf にエイリアスを書くことで解決。
★http://example.com/hoge/cgi-bin/test.cgi だと Forbiddenになる。 ~をつけるとアクセスには問題ない。
これは/Library/Server/Web/Data/Sites/Default 内にエイリアスを置くのではなく、
/private/etc/apache2/extra/httpd-userdir.conf にユーザ毎に
Alias /[ユーザ名] Users/[ユーザ名]/Sites/ の行を書き加えることで解決。
しかし、
★http://example.com/~hoge/cgi-bin/test.cgi でもInternal Server Error、 Premature end of script headers. となってしまう。
これは改行がちゃんとできてないからだというのが判明。win で作ったファイルだからだ。
.cgi の最初の行に
#!usr/bin/perl     を#!usr/bin/oerl —  と半角スペース -  を2ヶ加筆するとうごく。
この方法より、ファイルをmi をつかってラインフィードをUnix に変更して保存するのがいい。

Bingo!!

この1ヶ月前くらいから、あるフロアで、ip address が取得できないというクレームがときどきある。パソコンを接続し、ip address を自動取得(これが医学のデフォルトだ)で調べると192.168.0.xxとなることがある。
まただ。だれかルータを設置し、接続を間違えているのだ。問題は、このルータが常時起動していないことだ。クレームがあって職員が調べに行き、192.168.0.1 にpingを飛ばすと応答がない。ルータが応答しないように設定してあるか、あるいは、ルータをつなげたが自分のPCがインターネットに接続できないので、ルータを落としちゃうからだ。
前者の場合はブラウザで192.168.0.1 にアクセスするとルータ設定ページにアクセスできるはず。ID、パスワードの入力画面になるはず。というわけでping が通らなかったらこちらの方法で調べることにした。
今日も、会議中に該当フロアの一人のユーザからクレームが来た。会議終了後、ping が通るかな?と管理者だけで、調べに行った。これまで何回か調べにいったようなのだが、そのたびにping が通らないのでわからなかったからだ。だから人手をかけても空振りになる可能性があるからだ。
ところがping が通ったのだ。しめた、ルータの電源を落としていない。また落とすだろうからすぐ調べないといけない。というわけで、ケーブルをスイッチから抜いてルータを設置してある部屋を探すわけだが、スイッチの設置場所が2カ所あり、ケーブルの本数が多いので、援助を電話で要請した。ま、一人でできるところは一人でやってみるか、と思い、一番近いスイッチの1番ポートのケーブルを引っこ抜いたらpingが通らなくなった。Bingo!! というわけだ。1発で発見したのは初めてだ。たいてい半分以上ケーブルを抜いてようやく発見するのだ。ラッキー。
該当の部屋の鍵が掛かっている。つまり住人はこの部屋に常在しておらず、部屋でネットに接続するときだけルータのスイッチを入れるのだ。今日は電源を入れたまま不在になったのだ。

OSX10.8サーバ その19 ユーザの追加

Mの更新(Mountain Lion OSX10.8サーバ) その19 ユーザの追加
サーバ.app で追加したユーザはワークグループマネージャで認識されない。逆もそうだ。サーバ.appで追加したユーザをワークグループマネージャで強引に作成しようとすると、もうそのユーザ名は使われているからだめだといってくる。
ーバ.appで追加したユーザのdirectoryは自動的につくられるわけではない。以前はワークグループマネージャで追加すると自動的にできていたけど。
サーバ.appで追加したユーザのdirectoryに自動的にSitesができるが、何かの操作をする必要があるようだ。なんかをやったため自動的にできている。
ようするに、あとからダウンロードして追加したワークグループマネージャとサーバ.appは連携がとれていないのだ。どうしたもんかな。
OS X Server: Workgroup Manager not included.によれば;
Workgroup Manager is not included with OS X Server.
A legacy version of Workgroup Manager is available from Apple Support Downloads for use on Mountain Lion.
とあるから、使えることは使える。10.8用のも用意されている、がサーバ,appと連携してないと混乱するだけだ。

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 で接続し、ユーザ名を入力し、チャレンジレスポンス認証を使うで接続してパスフレーズ(パスワード)を入力すればいい。