VirtualHostを使用する必要があります。含まれるブロック祭典?

VirtualHostを使用する必要があります。含まれるブロック祭典?

<Directory>次のように、ブロックがセクションの外側に配置されるVirtualHost設定の例をよく見てください<VirtualHost>

# /etc/httpd/conf.d/example1.conf

<Directory /var/www/html/example1>
    Require all granted
</Directory>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/example1"
    ServerName www.example.com
    ServerAlias example.com
    ServerAdmin [email protected]
    ErrorLog "/var/log/httpd/error_log_example1"
    CustomLog "/var/log/httpd/access_log_example1" combined
</VirtualHost>

以下の例には<Directory>ブロックが含まれていませんか?以内にこの<VirtualHost>セクションは意味上より正確ですか?

# /etc/httpd/conf.d/example2.conf

<VirtualHost *:80>

    <Directory /var/www/html/example2>
        Require all granted
    </Directory>

    DocumentRoot "/var/www/html/example2"
    ServerName www.example.org
    ServerAlias example.org
    ServerAdmin [email protected]
    ErrorLog "/var/log/httpd/error_log_example2"
    CustomLog "/var/log/httpd/access_log_example2" combined

</VirtualHost>

ブロックが単一のVirtualHostに属し、必要に応じてデフォルトのhttpd.confの設定をオーバーライドするため、2番目のアプローチは正しいようです。

編集:TLS / SSLが有効になっている場合、2番目の方法を使用するにはブロックをコピーする必要がありますが、<Directory>これは非常にDRYではありません。したがって、最初のアプローチは正しいようです。

答え1

Apacheドキュメントで始める構成セクション:

  • <Directory>最短ディレクトリコンポーネントから最長ディレクトリコンポーネントまで処理が実行される。たとえば、銀は<Directory "/var/web/dir">以前に処理されます<Directory "/var/web/dir/subdir">

  • 複数がある場合<Directory>一部は、構成ファイルの順序で処理される同じディレクトリに適用されます。

  • 内部部分<VirtualHost>部分的に仮想ホスト定義の外部の対応するセクションの後に適用されます。。これにより、仮想ホストがプライマリサーバー構成を上書きできます。

あなたが仮定したように、両方の部分は正しいです。

関連情報