ため息 のすべての投稿

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

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が薦められているいるけど、まだインストールしていない。