web-dev-qa-db-ja.com

Apache HTTPサーバーバージョン2.2 httpd.confにファイルを含める

大きなhttpd.confファイルがあり、そのほとんどが仮想ホストです。 virtual_hosts.confなどのファイルを作成し、httpd.confから含める方法はありますか?私は少しググってみましたが、インクルードまでは多くを見つけることができません。モジュールのロードだけです。

20
Josh

Apache httpd.confファイルに関する情報は here にあります。

リンクが非推奨になった場合でも情報が失われないように、一部のスニペットがこのWebサイトからコピーされました。

Include /usr/local/Apache2/conf/ssl.conf
Include /usr/local/Apache2/conf/vhosts/*.conf

相対パス:

Include conf/ssl.conf
Include conf/vhosts/*.conf

ワイルドカード:

Include conf/vhosts/*/*.conf
39
JakePaulus

各仮想ホストを独自のvhost構成ファイルに分離します。これにより、小さなディレクティブを探す巨大なドキュメントを検索する手間を省くことができます。 Quantaの投稿と同様:

Include /etc/Apache2/vhosts.d/*.conf

それをhttpd.confの最後の行として配置するだけです

次に、単一のvhosts.confをドメインごとに個別のファイルに分割します。

domain1.conf
domain2.conf
domain3.conf
etc.... 

管理がはるかに簡単です。 -sean

8
Sean Kimball

Include ディレクティブでそれを行うことができます:

Include /path/to/virtual_hosts.conf
6
quanta

IncludeOptional

IncludeOptional ディレクティブを使用することもできます

IncludeOptional conf/vhosts/*.conf

そのため、そのような場合、適切なファイルはありません。または、ドキュメントで正確に述べたように、

これはIncludeディレクティブと同じように機能しますが、ワイルドカードが使用されていて、それらがどのファイルやディレクトリとも一致しない場合、またはファイルパスがファイルシステムに存在しない場合は、エラーを表示する代わりに警告なしで無視されます。

しかし!

「ファイルパスがファイルシステムに存在しない」場合、Apacheの一部のバージョンが実際に開始に失敗するであることに注意してください。上記の例のように、ディレクトリがない場合はconf/vhosts/

したがって、このような問題では、サブディレクトリが存在するかどうかわからないときに、一部のサブディレクトリを使用しないことにより、このディレクティブの安全な使用が制限される場合があります。

そのようなやり方のように:

<VirtualHost *:80>

DocumentRoot    "/var/www/example.com"
ServerName      "example.com"
ServerAlias     "www.example.com" "example.com" 
...

IncludeOptional /var/www/example.com/*.httpd.conf

</VirtualHost>



<VirtualHost *:80>

DocumentRoot    "/var/www/other.org"
ServerName      "other.org"
ServerAlias     "www.other.org" "other.org" 
...

IncludeOptional /var/www/other.org/*.httpd.conf

</VirtualHost>

誰かが好きなとき

IncludeOptional /var/www/other.org/*.httpd.conf

正常に機能する(指定されたマスクに一致するファイルかどうか)が、

IncludeOptional /var/www/other.org/config_optional_subdir/*.conf

失敗しますそのようなサブディレクトリがない場合config_optional_subdir

ご了承ください

IncludeOptional /var/www/other.org/extra.httpd.conf

失敗する少なくとも1つのサイトが存在しない場合も正確に指定されたファイルextra.httpd.conf。ワイルドカードが鍵です。


したがって、一般的なサイト構成作成され、自動的に再作成できる一部テンプレートであるが、一部の具体的なサイトでは、.htaccessファイルにのみ書き込むことができない追加のApache構成が必要な場合-このアプローチを使用できます。

0
FlameStorm