Apache設定で変数を使用する

Apache設定で変数を使用する

さまざまなサブドメインを構成するために、Apache2 構成にデフォルトで同じ構成ファイルがたくさんあります。ほとんどの構成ファイルでは、サブドメイン自体のみが他のファイルとは異なる名前が付けられているので、構成ファイルの上部にある種の変数を設定して、、、、などをServerName簡単DocumentRootErrorLog設定できるかどうかを調べようとします。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::Toolkittpage(モジュールと共にインストールされたコマンドを使用するために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>

おすすめ記事