大きなhttpd.confファイルがあり、そのほとんどが仮想ホストです。 virtual_hosts.confなどのファイルを作成し、httpd.confから含める方法はありますか?私は少しググってみましたが、インクルードまでは多くを見つけることができません。モジュールのロードだけです。
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
各仮想ホストを独自のvhost構成ファイルに分離します。これにより、小さなディレクティブを探す巨大なドキュメントを検索する手間を省くことができます。 Quantaの投稿と同様:
Include /etc/Apache2/vhosts.d/*.conf
それをhttpd.confの最後の行として配置するだけです
次に、単一のvhosts.confをドメインごとに個別のファイルに分割します。
domain1.conf
domain2.conf
domain3.conf
etc....
管理がはるかに簡単です。 -sean
Include ディレクティブでそれを行うことができます:
Include /path/to/virtual_hosts.conf
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構成が必要な場合-このアプローチを使用できます。