さまざまなサブドメインを構成するために、Apache2 構成にデフォルトで同じ構成ファイルがたくさんあります。ほとんどの構成ファイルでは、サブドメイン自体のみが他のファイルとは異なる名前が付けられているので、構成ファイルの上部にある種の変数を設定して、、、、などをServerName
簡単DocumentRoot
にErrorLog
設定できるかどうかを調べようとします。CustomLog
次のようなもの(明らかに動作しません):
subdomain=blog
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName ${subdomain}.example.com
DocumentRoot /var/www/${subdomain}.example.com/htdocs
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/${subdomain}.example.com_error.log
CustomLog /var/log/apache2/${subdomain}.example.com_access.log combined
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
subdomain
より賢明な解決策は、設定ファイルのファイル名の正規表現で変数を設定できることです。
私が見つけた動的に構成された大規模仮想ホストしかし、私が望むものが正確に何であるかを説明しません。
LinuxでApache 2.2を実行します。
ベストアンサー1
パールデモTemplate::Toolkit
tpage
(モジュールと共にインストールされたコマンドを使用するためにPerlを学ぶ必要はありません):
テンプレートファイル:
$ cat vhost.tpl
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName [% subdomain %].example.com
DocumentRoot /var/www/[% subdomain %].example.com/htdocs
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/[% subdomain %].example.com_error.log
CustomLog /var/log/apache2/[% subdomain %].example.com_access.log combined
</VirtualHost>
構成の作成:
$ tpage --define subdomain=domain.tld --interpolate vhost.tpl
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName domain.tld.example.com
DocumentRoot /var/www/domain.tld.example.com/htdocs
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/domain.tld.example.com_error.log
CustomLog /var/log/apache2/domain.tld.example.com_access.log combined
</VirtualHost>