
Ubuntu日本語フォーラム

ログインしていません。
最近頻繁にお世話になっております。
Apache2をいろいろ触っているうちに様々な疑問がたくさんありまして、すべてを質問していたらきりがない感じになってきました(泣)。以前よりhttpd.confを使っていた時代から随分進化した…という感じで浦島太郎状態になっております。もし以前にApache2を設定した際に参考になったサイトなどを教えていただけると幸いです。慣れてくるとこっちの方が設定しやすいという噂もあり是非挑戦してみたいです。
なかなかググっても見つからないいくつかの疑問点だけ質問させてください。
1.
apache2.confにインクルードさせている各ファイルはたくさんありますが、conf.dというディレクトリ以下とsite-availableディレクトリ以下の設定ファイルの置き方(分類の仕方)がいまいちわかりません。…/sites-available/defaultでは、比較的重要な設定をしているようですが、このファイルはどんな風にしてapache2に読み込まれてるのかちょっとわかりません。a2dissite とか、a2ensiteとかいう見たこともないコマンドがあったりして混乱中です。conf.d以下に至ってはどんな解説を見ても比較的自由に設定ファイルをおいているように見えますが、恣意的に設定ファイルをおいてもよいものなのでしょうか?また設定が重複してしまった場合などの優先順位などはどのようになっているのでしょうか?
またapache2.confに読み込まれるmods-available以下のモジュールがどんな風に読み込まれているのかがファイルを見田だけではわかりませんでした。
2.
各ユーザーのhomeディレクトリ以下を設定するためのusrdirモジュールなるものがあって、設定&有効化した後にはきちんとそのとおりにApacheが動いたのですが、Apacheの古き良き設定でconf.d以下に各ユーザーのhomeディレクトリ以下の共通の設定をしたファイルをおいてみたのですが、これもきちんと動いているような気がしました。usrdirモジュールの切り方がわからないのできちんと検証できていませんが、ここらあたりの設定は常識的(?!)には皆様どんな風に設定されているのでしょうか?
3.
/etc/apache2/sites-available/defaultの設定でのっけから<virtualHost…となっていて、またports.confも最初からNameVirtualHost *:80とくるのですが、設定をしてApacheは機能しているものの何かしら意味がわからなくて頭の中が不完全燃焼しております。バーチャルホストの中にドキュメントルートが入っているというのが…なんだかおかしな気がしています。もし識者の方がいらしたらおしえてください。
長くなってしまいましたが、大筋だけでも解説していただけるとありがたいです。よろしくお願いします。
オフライン
oosamuuy による投稿:
1.
apache2.confにインクルードさせている各ファイルはたくさんありますが、conf.dというディレクトリ以下とsite-availableディレクトリ以下の設定ファイルの置き方(分類の仕方)がいまいちわかりません。
以前に別の方への回答で書いたものですが、参考までにどうぞ
https://forums.ubuntulinux.jp/viewtopic.php?pid=23187#p23187
オフライン
めちゃくちゃ詳しく書かれていて、ものすごくよくわかりました!
ありがとうございます!
(ググると情報が断片的でなかなか全体がわからなかったのです!)
オフライン
あ、すみません。一つ質問を忘れていました。
調べてみてもわからなかったのが、conf.dの振る舞いというか動き方なのですが、例えばsites-enabledとsites-availableはどうやらモジュールによって管理されているみたいで、sites-availableに新規でファイルを作成した場合など自動的にsites-enabledにリンクが貼られています。ここのディレクトリやユーザーの設定をするにはa2ensiteみたいなコマンドがあったりしてON/OFFも比較的楽に処理できてうれしいのですが、conf.dは、これは伝統的なconf.dと同様の動きをしている…つまり、同じディレクティブをただ読み込んでいるだけで、apache2.confの中に書いてしまっても同様ということなんですよね?
Includeしているだけなのでたぶんそういうことなのかと予想していますが、僕の設定では(今度は)conf.d以下の設定が読み込まれていたり読み込まれていなかったりとまちまちなのですが、何か特別な施しっていうのが必要なのでしょうか?
(具体的には、CGIの設定のAddHandlerをconf.d以下に設定したのですが、これはちゃんということ聞いてくれているようなのですが、セキュリティー関係でバージョン名などを表示しないようにする設定(ServerTokens ProductOnly)という設定ファイルが読み込まれていないみたいのです。どちらもただファイルに書いてapache2.confに読み込ませているだけです。)
apache2にrestartをかけるだけではconf.d以下の設定は反映されないのでしょうか?
(気になるのが、Include /etc/apache2/conf.d/ という風になっていて、Include /etc/apache2/conf.d/*とファイル名を示すワイルドカードがないところ…です。つけてもとっても同様の結果ではありましたが…(泣)
オフライン
oosamuuy による投稿:
(ServerTokens ProductOnly)という設定ファイルが読み込まれていない
ServerTokens ディレクティブをどんな名前のファイルに記述しましたか?
conf.d ディレクトリの中のファイルは、ファイル名順に読み込まれます
また、conf.d/security ファイルには既に ServerTokens Full と記述されていますので、このファイル名よりも、小さいファイル名に ServerTokens ディレクティブを記述しても、上書きされて無効になるはずです
(あれ? 先に読み込んだ方が有効? 後が有効? どっちだっけ?)
オフライン
ryさんありがとうございます。
なんだか長い間Apacheを使っていますが…、そこらの読み込みの順番にまったく気がつきませんでした!!
/ect/apache2/conf.d/securityというファイルをそのままバックアップをとって、/ect/apache2/conf.d/security.backupとして、
/ect/apache2/conf.d/securityにServerTokens ProductOnlyを書いて保存しました。
これ、ご指摘のとおり、バックアップしたファイルも読み込まれていて、securityとsecurity.backupの両方が読み込まれている…ということらしいです。いろいろやった結果…
security
↓
security.backup
という順番みたいです。security.backupを削除したら設定が反映されました!!
今まであんまり気にしたことはなかったけど、Linux全体としてファイルの読み込みはアルファベット順で、最後に読んだものが設定になる…ということなんでしょうか?(もちろん、そういう二重の設定にエラーを出すということもあると思いますが…。)
いやはや、わかっているつもりのconf.d以下の設定に数日間も費やしてしまいました。
ryさん貴重なヒントありがとうございます!!
オフライン
oosamuuy による投稿:
Linux全体としてファイルの読み込みはアルファベット順で、最後に読んだものが設定になる…ということなんでしょうか?(もちろん、そういう二重の設定にエラーを出すということもあると思いますが…。)
きちんと調べたわけではありませんが、ファイルの読み込みはアルファベット順になるものが多い気がします
最後に読み込んだ内容が有効になる(上書きされる)のか、最初に読み込んだ内容が有効になるのかは、そのアプリケーションの作り方によるので、こちらは一概に言えません
だから実際には、後読み有効で /ect/apache2/conf.d/security.backup→ /ect/apache2/conf.d/security.backup の順に読み込まれているのか、先読み有効で /ect/apache2/conf.d/security.backup.backup→ /ect/apache2/conf.d/security の順に読み込まれているのかは、自信ありません
先読み、後読みどちらが有効になるかを調べるには、ひとつのファイルに違う内容の同じディレクティブを 2行書けば確認できますが、そこまでやる気が....... <他人任せモード発動中
オフライン
ryさんありがとうございます。
conf.dに限ってはテストの結果後読みでした。最後に読んだ設定が上書きされるようです。前バージョンのapacheもhttpd.confを最初から最後まで順番に読み込んでいく感じだったと記憶してます。apache2ではapache2.confのどこでconf.dを読み込んでいるのかも影響してしました。apache2.confの冒頭で書いたディレクティブはその後読み込まれたconf.d以下のファイルに上書きされました!
たぶんですが、ファイルの行順、アルファベット順…という優先順位で読んでいるみたいですね。。。
(もし違っていたら識者の方、ご指摘ください!)
オフライン