仮想ホストにDocumentRootを指定した場合、指定された?

仮想ホストにDocumentRootを指定した場合、指定された?

私は、しばらく前に(この仕組みについてあまり知識がないうちに)設定した、ややデフォルト風の VirtualHost ファイルを使用していますが、何を残しておけばよいのかよくわかりません。これらすべてを組み込んだ VM をセットアップするのは面倒なので、ただ試すだけでは済まないし、現在の設定は実稼働環境にあるため、試行錯誤は実際には選択肢ではありません。以下は、無実の人を保護するために名前を変更したファイルです。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.my.hostname
    ServerAlias my.hostname
    DocumentRoot /var/www/mysite
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/mysite>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    LogFormat "%t   %T/%D   \"%r\"   %>s   %b" mysitelog
    CustomLog ${APACHE_LOG_DIR}/mysite.access.log mysitelog

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

それについての私の質問は次のとおりです:

  1. ブロックを削除する必要がありますか<Directory />? これは$APACHE_HOME/conf.d/security、「現在、一部の Web アプリケーション Debian パッケージに付属する構成が破損しています」というコメントで指定されています。このバージョンのコメントを解除して、vhost から削除する必要がありますか?

  2. これは PHP に他ならないので、cgi ブロックとエイリアスを保持する理由はないと思います。

  3. おそらく、それらも取り除くdocことができると思います。それが何のためにあるのかさえよくわからないので、「通常の」設定でそれが何に使用されるのか説明していただければ、ボーナスポイント(実際にはそうではありません)がもらえます。

したがって、私が考えていることすべてが正しいと仮定すると、新しい vhost ファイルは次のようになります。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.my.hostname
    ServerAlias my.hostname
    DocumentRoot /var/www/mysite

    <Directory /var/www/mysite>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    LogFormat "%t   %T/%D   \"%r\"   %>s   %b" mysitelog
    CustomLog ${APACHE_LOG_DIR}/mysite.access.log mysitelog

</VirtualHost>

その他のヒントも大歓迎です。ありがとうございます! 私の設定についてさらに情報が必要な場合はお知らせください。

答え1

ブロックを解除したほうがいいでしょうか<Directory />

もちろんです! これは間違いなく、vhost ではなくサーバー レベルで処理できるものです。

これは PHP に他ならないので、cgi ブロックとエイリアスを保持する理由はないと思います。

核爆弾を投下しろ。

ドキュメント関連のものも削除できると思います。

削除してください。これは、新しくインストールした Web サーバーを使用してシステムのドキュメントを参照できるようにするためのものです。これはかわいい例ですが、私の意見では、デフォルトの構成ファイルには属していません。

提案された設定ファイルについて: 良さそうです! 私がお勧めするのは、ファイルを使用していない場合は、AllowOverride Allディレクトリ ブロックを に変更することです。ファイルを使用している場合は、ファイルを削除して、その設定をディレクトリ ブロックに取り込むことをお勧めします。(AllowOverride None.htaccess.htaccessなぜそう言うのかについてはここを参照してください

関連情報