Если в моем VirtualHost указан DocumentRoot, нужен ли мнеуказано?

Если в моем VirtualHost указан DocumentRoot, нужен ли мнеуказано?

Я использую файл VirtualHost, выглядящий как что-то по умолчанию, который я настроил некоторое время назад (до того, как я узнал, как все это работает), и я не совсем уверен, что мне следует оставить. Я не хочу просто пробовать разные вещи, потому что настройка виртуальной машины со всем этим будет хлопотной, а текущая конфигурация находится в производственной среде, так что метод проб и ошибок на самом деле не вариант. Вот файл, с измененными именами, чтобы защитить невиновных:

<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комментарии "В настоящее время это нарушает конфигурации, которые поставляются с некоторыми пакетами веб-приложений 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 и псевдоним.

Уничтожить его ядерной бомбой.

Думаю, я также смогу избавиться от всей этой документации.

Nuke it. Он там, чтобы вы могли использовать ваш недавно установленный веб-сервер для просмотра документации вашей системы. Это милый пример, но на мой взгляд, он не должен быть в файле конфигурации по умолчанию.

В вашем предложенном файле конфигурации: выглядит хорошо! Единственная рекомендация, которую я бы дал, это изменить блок AllowOverride Allв вашем каталоге на , AllowOverride Noneесли вы не используете .htaccessфайлы - а если вы используете .htaccessфайлы, я бы рекомендовал уничтожить их и перенести их конфигурацию в блок каталога. (см. здесь подробности о том, почему я так говорю)

Связанный контент