新しくWebサーバ用のコンピュータを買った.必要なアプリケーションは既にインストールされている(はず)なので,とても気楽なセットアップ.プレインストールってすばらしい.
と,思いきや.
いつも通り思ったように動かない部分が出てくる.一番困ったのは,Webページのドキュメントルートが変更できないことだ.
もうちょっと正確に言うと,apacheのhttpd.confでDocument Rootがデフォルトのままなら/sbin/service httpd startでhttpdが起動するけど,Document Rootを変更するとぽろっと「失敗」というメッセージを出すだけなのだ.
ところが,apachectlでhttpdを起動させると動く.httpdを直接実行しても動く.もう/sbin/serviceのばかばか.
手動でいつも起動させるならどのコマンドでもいいけど,確か週に一度ぐらいhttpdは再起動がかかるはず.その時に実行されるのは,/sbin/serviceなので,ここで動かないと毎週手動せいっ!ということになってしまう.
しかも,日曜日の朝4時2分とかそんな感じの時間のはず.いやいや,手動で起動はご勘弁を.
んん,もしかしてinit.dを書き換えればいいのだろうか.でも,でも,ただ単にドキュメントルート変えたいだけなのに.環境はRedhat Linux5,Apache2.2.なんで,どうして.
で,すごーくすごーく調べてみたら,SELinuxとやらのセキュリティに引っかかっている模様であることがわかった.
$ ls -al --context と打ってみて,ドキュメントルートのディレクトリに対して
system_u:object_r:httpd_syscontent_t
という文字列が見えなければ,よろしくないらしい.chconコマンドでこれを変更する.
でも動かない.
で,またすごーくすごーく調べてみた.なんかGUIのツールを使うと何か設定ができるらしい.
普段はコンソールでは作業しないけど,今回は仕方がない.コンソールでGUIを立ち上げSELinux Management toolとやらを使い,Booleanのところで「httpd service Disable SELinux Protection for httpd daemon」をオンに(つまりプロテクションをかけないことに)する.
そしたら,httpdさんが/sbin/serviceで動いてくれた!
長かった.長すぎた...まるまる2日は費やした気がする...
しかしなぁ,いつもコンソールの前で設定変更するっていうのも,サーバーっぽくないし.なんとか,CUIでも設定できるようになりたい...Xサーバのソフトを買ってもいいけど,それも話が微妙に違う気がする.
そうそう,あとhttpdのdaemonにSELinuxのプロテクションがかかってなくて大丈夫なのか.その辺も心配の種ではある.
しかもhttpdのdaemonにプロテクションをかけないことにすると,なぜドキュメントルートが変更できるのかも不明.あ,もしかしてSELinuxの中にドキュメントルートの設定があるのかも?
わからない.ほんとーにわからない...
...勉強させていただきます...
と,思いきや.
いつも通り思ったように動かない部分が出てくる.一番困ったのは,Webページのドキュメントルートが変更できないことだ.
もうちょっと正確に言うと,apacheのhttpd.confでDocument Rootがデフォルトのままなら/sbin/service httpd startでhttpdが起動するけど,Document Rootを変更するとぽろっと「失敗」というメッセージを出すだけなのだ.
ところが,apachectlでhttpdを起動させると動く.httpdを直接実行しても動く.もう/sbin/serviceのばかばか.
手動でいつも起動させるならどのコマンドでもいいけど,確か週に一度ぐらいhttpdは再起動がかかるはず.その時に実行されるのは,/sbin/serviceなので,ここで動かないと毎週手動せいっ!ということになってしまう.
しかも,日曜日の朝4時2分とかそんな感じの時間のはず.いやいや,手動で起動はご勘弁を.
んん,もしかしてinit.dを書き換えればいいのだろうか.でも,でも,ただ単にドキュメントルート変えたいだけなのに.環境はRedhat Linux5,Apache2.2.なんで,どうして.
で,すごーくすごーく調べてみたら,SELinuxとやらのセキュリティに引っかかっている模様であることがわかった.
$ ls -al --context と打ってみて,ドキュメントルートのディレクトリに対して
system_u:object_r:httpd_syscontent_t
という文字列が見えなければ,よろしくないらしい.chconコマンドでこれを変更する.
でも動かない.
で,またすごーくすごーく調べてみた.なんかGUIのツールを使うと何か設定ができるらしい.
普段はコンソールでは作業しないけど,今回は仕方がない.コンソールでGUIを立ち上げSELinux Management toolとやらを使い,Booleanのところで「httpd service Disable SELinux Protection for httpd daemon」をオンに(つまりプロテクションをかけないことに)する.
そしたら,httpdさんが/sbin/serviceで動いてくれた!
長かった.長すぎた...まるまる2日は費やした気がする...
しかしなぁ,いつもコンソールの前で設定変更するっていうのも,サーバーっぽくないし.なんとか,CUIでも設定できるようになりたい...Xサーバのソフトを買ってもいいけど,それも話が微妙に違う気がする.
そうそう,あとhttpdのdaemonにSELinuxのプロテクションがかかってなくて大丈夫なのか.その辺も心配の種ではある.
しかもhttpdのdaemonにプロテクションをかけないことにすると,なぜドキュメントルートが変更できるのかも不明.あ,もしかしてSELinuxの中にドキュメントルートの設定があるのかも?
わからない.ほんとーにわからない...
...勉強させていただきます...