人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Apacheの設定ファイルの書き方について質問です。

http://www.atmarkit.co.jp/fcoding/articles/server/03/server03b.html
上記ページでこのような書き方があるのですが、

# vhost1
<VirtualHost *:80>
ServerName vhost1
DocumentRoot /usr/local/vhosts/vhost1

<Directory "/usr/local/vhosts/vhost1">
Options All
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>

パス名を2回書いてるのが気になります。
これを、下記のように書き換えたら、何か問題はありますでしょうか?
上の書き方と下の書き方は、等価でしょうか?

# vhost1
<VirtualHost *:80>
ServerName vhost1
DocumentRoot /usr/local/vhosts/vhost1

<Directory "/">
Options All
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>

●質問者: DQNEO
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど
●50ポイント

DocumentRoot の設定は絶対パスでの指定が必要となります
Directoryの設定はフルパスでの指定が必要となります
http://httpd.apache.org/docs/2.2/ja/mod/core.html#documentroot
http://httpd.apache.org/docs/2.2/ja/mod/core.html#directory

<Directory "/">と書いてしまうと、
まったく見当違いの場所の設定を変えようとしていることになり、
質問文の2つの示す結果は「等価ではない=置換できない」となります


DQNEOさんのコメント
結果的に一緒にはならないですかね? <Directory "/usr/local/> </Directory> と書けば多少マシでしょうか。 要は、vhost1を2回書くのが嫌なのです。 vhost2, vhost3,...と増えるにつれてコード重複が目についてしまいます。

2 ● y-kawaz
●50ポイント ベストアンサー

等価ではありませんが後者の設定により前者の個別設定が不要になるので、設定の省力化という目的は達成できると思います。

まぁ実際のところは / で設定をすると全然関係ないと思ってる場所に影響が出る可能性もあるので、

DocumentRoot /usr/local/vhosts/

とか
DocumentRoot /usr/local/vhosts/*

とか
DocumentRoot /usr/local/vhosts/*/public_html

とかにしとくの設定の落としどころになると思います(最後のは質問のケースでは使えませんが)。


DQNEOさんのコメント
おお!ワイルドカードはそういうときに使うんですね。大変参考になります。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ