アップデートしたら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月 の追記 ]
また同じトラブルがあったよ。今回はブログを他に移転していたので、ふるいサーバの記事をみることができた。
Mountain Lion カレンダーのサウンド設定ができない の続き。
デフォルトだとディスプレイの右上に警告画面とBassoの音が出る。デフォルト以外の通知の設定をいくら変更しても保存されない。
デフォルトにさらに加えても、デフォルトの動作を行うだけである。
姑息な手段は /System/Library/Sounds/ の Basso.aiff をBasso~.aiff と名前を変えちゃって、再生したい.aiff ファイルの名前をBasso.aiff にするのだ。Macを再起動する。これで好きな音に変更できるが、デフォルトの設定だけだ。
通知を編集して完了しても通知の設定は保存されない。
あきらかなバグで10.8.1 の頃からあるららしい。10.8.4 になっても改善されていない。
新しく通知センターなる機能が加わったがこれとの関係と思われる。通知センターのほうでカレンダーを表示してもしなくても、サウンドを鳴らすにチェックがはいっていないとカレンダーの方から音がでない。きっと通知センターの方の音を変更する方法が用意されておらず、/System/Library/Sounds/Basso.aiff しか選べないのだ。カレンダーでの音の設定は無視されてしまうようだ。
Canon LBP5700は拾って来たもので、化石プリンタだ。Canon のページを見ると、Mountain Lion(10.8)には対応しないし対応の予定もないとなっている。ふざけているよな。ま、ユーザは少ないだろうけど。それでもWin8 には対応済みだ。けしからんよな。昔はCanonとAppleはつるんでいて、Canon販売がMacintosh を販売していたのだ。仲が悪くなってCanonのMacintoshへの対応が極端に悪くなった。Apple Japan の販売店に対する態度がよくないからだ。ポリシーが米国のままだからだ。
Mountain Lion にバージョンアップしてから思い出した。何故、これまでアップしなかったかというと、このCanonのプリンタが対応していないからだった。アップしてしまったと思ったのだ。年寄りだから、憶えていないのだ。
で、Mountain Lion にアップしちゃったので印刷してみたら、一応できる。遅いけど。プリンタも交換だな。今ではA3対応、両面でも安いからな。でかいし、化石ものだし。しかし、予備のトナーもあるし、もったいない。
普段使っているMacのOSをLion(10.7 )から10.8 Mountain Lion (10.8.4)に変えた。
大学での前期の講義・実習が一段落したからだ。ルーチンの仕事が少なくなったからだ。ルーチンの仕事があるとき、システム変更するのはやばいからね。OSXサーバを立ち上げるときMountain Lion を購入しないといけなかったから、Apple Store からダウンロードできる状態になっている。OSXサーバを作るとき10.7のMac Pro だったのでMountain Lion (10.8)にアップし、さらにサーバ用OSを購入せざるを得なかった訳だ。だからMountain Lion だけはどのMacにもインストールしていないから、使っていいんだろ?1OSは1台のみにしか使えないというのが原則だけど、現状のAppleの販売の仕方だと、そんな原則は守れというのが無理では?OSXサーバだってシリアル番号はなくなったし。
カレンダーのサウンドがデフォルトだけになってしまった。古今亭志ん朝の黄金餅からとってきた、「おーいやけてるかい」とか「おたんのもうします」とか、まだOS7 くらいのとき集めたゲームのサウンドとか、「Oh! Shit 」などを警告音やiCal のサウンドに使っていたんだけど、このファイルはどこにいっちゃたんだろ?
システム環境設定のサウンドを開くと昔のサウンドが再生できるのがわかった。だからどっかにファイルがあるわけだ。
iCal がカレンダーになったわけだが、このカレンダーのサウンドファイルは/System/Library/Sounds/にある、ここに.aiff ファイルを置けばカレンダーから選択できる。
昔の音はどこにいっちゃたんだろ? TVドラマ「24」のCTU (Counter Terroist Unit だっけ?)の電話呼び出し音は、なんとかユーザのミュージックの中に入れておいたので回復できた。
CarbonCopyCloner で別ドライブにバックアップしている。このソフトはコピー元でなくなったが以前バックアップしてあったファイルを別途バックアップしたときの日付順に保存している。Spotlight で検索したら、これがヒットした。というわけで回復できた。つまり10.8にアップしたとき、削除されてしまったのだ。
ではシステム環境設定のサウンドのファイルはどこにあるのだろうか?Spotlight で検索してもひっかからない。
なんかほかのページを見ると、システム環境設定のサウンドにでてくるサウンドファイルは/System/Library/Sounds/にあることになっているのだが……
ゴミ箱を空にすると、水洗トイレの水を流した音になるのだが、その音もでてこなくなった。あの音はどこに置いたんだっけ?
これもバックアップにあった、あった。DragThingというアプリケーションをつかっているのだが、このアプリでサウンドの設定ができた。
/users/[ユーザ名]/Library/Sounds/ というdirectory があってここにも音声ファイルがある。面倒なのはこちらのLibrary は隠しフォルダになっていて見えないのだ。
どのアプリがどのフォルダの警告音を使っているのか、いまいち把握していない。
カレンダーで通知でサウンド付きに設定しても、変更されない。なんてこった。
To be continued.
MacBook Air を2台所有し、1台をバックアップに使っているという贅沢なおっさんの続きだ。
あっちの大学に勤務している日にこの贅沢なおっさんから電話がかかってきた。本来のMacBook Airではなく、バックアップの方のMacBook Airで作業しているのではないか。という疑問だ。
本来のMacBook Air—-Thunderbolt/Power二股ケーブル—-Thunderbolt Display—-Thunderbolt ケーブル—-バックアップ用MacBook Air という接続だ。バックアップ用MacBook Air はターゲットモードで起動しておきCarbonCopyClonerで本来機のクローンを毎日定時に作成する。これにTimeMachine 用外付けHD、SuperDrive、プリンタがUSBケーブルで Thunderbolt Displayの背面のポートに接続する。という構成だ。プリンタがUSB接続なのはプリンタを共有したくないのだ。
孫が生まれ、その写真が送られてきた。あまりにもかわいいので、孫の写真をデスクトップの壁紙にしたわけだ。壁紙の設定は普通システム環境設定から行う。このおっさんはそんなことはあまりしない。Mountain Lion では、送られて来た写真を右クリックすると壁紙にするというメニューが出てくるのだ。だからクリックしちゃったのだ。
あるとき、本来の本来のMacBook Air を Thunderbolt Display からはずし、単体で起動したらデスクトップの壁紙が元のもので、孫の写真になってない。バックアップ機を立ち上げると元のデスクトップだ。へ?ではこれま作業していたのはバックアップ機だったのでは?と、混乱してしまったわけだ。
電話を受けた時、バックアップ機で動いていると言われたので、そんなはずはない、バックアップ機はターゲットモードになっているので、本来のMacBook Air が動いているかぎり、また再起動しない限り、起動ディスクにはならないはず… とは思ったもの、現物がないので、土曜日に行くからということにした。
土曜日、行ったら、贅沢なおっさんの言う通り、本来機単独で起動すると、 Thunderbolt Display-Clamshell モードで設定した壁紙にならない。 Thunderbolt Display接続で本来機の蓋を閉じないと、本来機も Thunderbolt Displayも壁紙は元のものである。この状態で本来機の蓋を閉じClamshellにすると、設定した孫の写真の壁紙になる。
この動作は本来の動作なんだろ。2つの画面のそれぞれの壁紙を設定したことになるのからだ。蓋をあけたときは自動的にミラーモードであり、Clamshellモードはミラーモードでも、2台のモニターを使っているモードでもないのだ。混乱するわけだ。Clamshellモードではビデオ出力は本体への出力をやめ、外付けディスプレイ専用になるのだ。解像度がちがうからな。壁紙については2台のモニターを使っていることになるんだろ。
さらに混乱したのは Thunderbolt Display背面に接続したUSB機器を認識できないことである。本来機に接続すると認識できる。
しかし Thunderbolt Displayに接続した外付けHDは、最初は認識していなかったが再起動でできるようになった。Canonのプリンタは認識できない、また管理者が最初に設定したときは Thunderboltケーブルが短いものであったのだが、これを配置の関係から長いものに変更してあった。この長い Thunderboltケーブルにも問題があるのかもしれない。組み合わせでうまくいかない可能性もある。
MacBook Air 単体でもCanonのプリンタを認識できないことが分かった。プリンタドライバを更新したりしたが、結局これは意味がなく、プリンタをUSB接続したまま、プリンタの方を再起動すると、MacBook Air でも Thunderbolt DisplayのUSBポートでも、認識できるようになった。
長い(2 m) Thunderboltケーブルがだめなのかは、きちんと検討していない。短いほうに変更したらうまくいったからだ。
テスト環境が自分の物ではないからな。
2台のMacBook Airは重ねて置くと加熱してファンがうるさい。そこで、ホームセンターでまな板が2枚入るスタンドを購入して持って行ってあげた。これでいいはず。これでディスプレイの近くにMacBook Airを2台置けるので Thunderboltケーブルも短いので済む。
PowerPointでコピペができないという問題は、OSを10.8に上げたためで、Office 2011をアップデートして解決した。
なんだかんだで2時間弱かかって、すべて解決した。系統的に調べて原因を追及していないから、参考にならないだろうな。
なんせ、こんな贅沢な使い方をしているユーザなんてめったにいないから、ネットでの情報が得られない。
TeamViewer というリモートデスクトップ・ソフトのお世話になっている。どうしても、こっちの大学にいるときあっちの大学の仕事をする必要があるからだ。Mac/Win どっちがどっちの組み合わせでも使えるからな。
こいつのAndroid 版があるのでインストールして使ってみた。んが、使えるが、いかんせん画面が小さい。そりゃそうでしょ。デスクトップの画面はでかいので、小さなスマホ画面では、拡大が可能だけど使いにくい。23インチモニター2台あるわけで。その画面にあるアイテムをスマホの画面で操作するわけで無理がある。
必要はないだろうな。外出先でデスクトップを使うときは、あらかじめノートを持って行くし。なかったら、仕事しないだけだし。
Macintosh と Windows7 のキーボード、マウス、モニタを共通にしてスイッチで切り替えて使っている。Elecom の KVM SWITCH-DVI 1920×1200 だ。
これを導入したとき、無線マウスは使えない事はないが、切り替えがスムーズでなかった。したがって有線マウスを使っていた。
Logitech の M187 という無線マウスを購入して使ってみたら、スムーズに切り替えられた。なにがまずくて、なにがよくなったんだろ?
調べる気もしない。ともかくうまく動作するからな。
MacOSXのエイリアスではこんなことがないのだが、Win だとショートカットを作成し、これを別メディアにコピーすると、指し示すリンク先が絶対リンクになっているので使えない。ショートカットを単純にコピーしてはいけないのだ。
ショートカットを別メディアにコピーすることがあるのかというかもしれないが、あるのだ。例えば、一連のファイルが沢山あって、これを一つのフォルダに納める。沢山あるうちの要のファイル(実行ファイルなど)のショートカットを作成し、フォルダと同じレベル(diectory)におけば、フォルダとショートカットファイルの2つだけになって取り扱いが楽になる。
ショートカットの元ファイルの存在場所を相対directory表示にしないといけないわけだ。
シートカットを右クリックしてプロパティを表示する
ショートカットのタブで
リンク先を
%windir%¥system32¥rundll32.exe url.dll,FileProtocolHandler “abc¥def.exe”
とする。” “の中身が相対directoryなのだ。この例でいうと、ショートカットファイルと同じdirectory に abc というフォルダがあり、そのフォルダの中に def.exe というファイルがあって、これがショートカットのリンク先なわけだ。フォルダの前に¥はつけない。
作業ホルダー は空白にしておく。
これでいい。
しかしMacでほとんどの仕事をしているので、win で作業したとき気が付かなかった。Macのほうが楽だな。
こっちの大学のことなんだけど、贅沢な我が侭な奴がいて、なんとMacBookAirを2台所有している。
常に使うMacBookAirをオフィスでも出張で出るときも持って使う。これは、いいでしょ。管理者も全く同じではないがやっているからね。勤務先が2カ所あるから1カ所はMacBookAir とAppleのモニターで仕事をしている。他方はデスクトップでこっちに情報は集約している。
でも、この贅沢ものは1台のMacBookAirをバックアップにして、いつも使うMacBookAirにトラブルがあったらすぐさまバックアップ機で仕事をしたいというのだ。2台もMacBookAirを持っているという贅沢のなせる技だ。
Carbon Copy Cloner で、バックアップ機をターゲットモードで起動させておきクローンを作成することにした。
クローンを作成し、クローン機から立ち上がることを確認した。毎日定時にバックアップするように設定してあげた。
なんかもったいない。
ちなみにあげたCarbonCopyClonerは現在有料アプリになっている。管理者が手に入れたのは無料のときのやつで、作成者とバグレポートをちょっとやったことがある。15ドルも寄付しちゃったことがあるのだ。
現在は有料版で3.5.1というバージョンである。
日本語のサイトではFree版が3.4.3 で配布している。3.4.4 は多分無料版だろう。しかし検索するとロシア語のサイトが表示されてダウンロードできない。
現在手元にあるのは3.4.4-b2(489)だ。これをインストールしてあげたのだ。問題ないだろう。
YAMAHA NVR500 のNAT のセッション数は4.096
YAMAHA RTX1200のNATのセッション数は20,000
Googleマップで地図を描画するだけでも、60程度のセッションを使うらしい。1台のPC、携帯が100セッション消費するとするとNVR500 では40台がいいとこだ。4年前、新棟ができたとき、ここに入る研究グループに研究室毎にNVR500を導入してサブネットを組むことを薦めた。1研究室で大学院学生を含めた住人が30名を越える研究室はほとんどないからだ。管理者の管理するサーバから配布する private ip address の不足を補うこともあった。
しかし、当時(といっても、高々4年前なのだが)は携帯がWi-Fi で接続することは予想していなかった。そういう使い方もあるとは知っていたが、目の前にあるPCでネットが使えるのに、あえてあんな小さな使いにくい機器でネットを使うだろうかという発想しかなかった。
現在の学生は携帯/スマホを日常的に使うのが当たり前だ。しかもPCを立ち上げていてだ。というわけでNVR500の配下では20名程度が限度だ。20名を越える研究室ではアップアップしているかもしれない。いまさらRTX1200 に変更しろといったら怒られるだろうな。
It's alright, I say It's OK. Listen to what I say.