会議室の予約

会議室をリモートで、予約状況が見える、予約できる というページを作れということになった。まだ関係部署との調節が済んでいないので、そのようなページを作るかどうかも決定していない。この辺が面倒なところだ。サービス自体はなんとかできた。

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 ~(チルダ)なしにする
各ユーザのページの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をつくるのがいいらしい。

ベランダに蛙が住み着いた

1か月前、ベランダから、一定間隔で、金属がこすれあうような音がすることに気がついた。空調の室外機あたりだ。かなり正確に1秒くらいの間隔で音がする。ベランダで動く物といったら空調室外機のファンしかない。へ、空調にトラブルかな?と始めは思ったのだが、近づいて、音を出したら止まった。

ふむ、なにか動物がいるようだ。このような高い音を出す動物といったら、昆虫か?

ベランダには、いただいた山椒の木と、ミントと、シンビジウム(成長しちゃって株分けしたので4鉢も)の植木鉢群がある。2週間くらいたったとき、この植木鉢の縁にアマガエルを発見した。

こいつが鳴いていたようだ。

我が家は1階ではない。こんな高いところへどうして這い上がってきたんだろうか?餌なんか与える気はないが、住み着いているということは餌があるんだろ。植木に小さな昆虫が飛んでくるのだろうか?山椒の木にはアゲハ蝶が飛んできたが、アゲハ蝶をこの小さな蛙は大きすぎて食べられない。

ホームセンターに別の用事でいったら、ソーラーで動作する夜間のみ点灯するガーデンライトを売っていた。400円だ。ふむ、夜、明かりがあると昆虫が飛んでくるので、このライトがあると餌となる虫が来るかも。

というわけで設置してみた。そしたら、蛙はなかなか顔をださなくなった。今朝も鳴いているから植木鉢のどっかに潜んでいるにちがいない。ガーデンライトは役立たずで、蛙には迷惑だったんだろうか。

この蛙のように自主的に這い上がってくる学生がいるとうれしくてサポートするのだが、なかなかいないなぁ。1か月も住み着かれると愛着がわいてくるな。そのうちどっかに行っちゃうだろうけど。

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/ で公開できることになる。
これらのページにアクセスが可能にするためには次ページ移行の設定をおこなってちょうだい。
最終的には解決した。こっちを読んでちょうだい。