Se eu tiver um DocumentRoot especificado em meu VirtualHost, preciso de umEspecificadas?

Se eu tiver um DocumentRoot especificado em meu VirtualHost, preciso de umEspecificadas?

Estou usando um arquivo VirtualHost com aparência padrão que configurei há algum tempo (antes de ter muito conhecimento de como essas coisas funcionam) e não tenho certeza do que devo manter. Não quero apenas tentar coisas porque configurar uma VM com tudo isso seria um incômodo, e a configuração atual está em um ambiente de produção, então tentativa e erro não é realmente uma opção. Aqui está o arquivo, com nomes alterados para proteger os inocentes:

<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>

Minhas perguntas sobre isso são:

  1. Devo me livrar do <Directory />bloqueio? É especificado $APACHE_HOME/conf.d/securitycom o comentário "Isso atualmente quebra as configurações que vêm com alguns pacotes Debian de aplicativos da web." Devo descomentar esta versão e remover aquela do meu vhost?

  2. Isso nada mais é do que PHP, então acho que não há razão para manter o bloco cgi e o alias por perto.

  3. Acho que também posso me livrar dessas doccoisas. Eu nem tenho certeza para que serve isso, então pontos extras (na verdade não) se você puder explicar para que isso seria usado em uma configuração "normal".

Então, supondo que estou certo em tudo que estou pensando, meu novo arquivo vhost poderia ficar assim:

<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>

Quaisquer outras dicas são muito bem-vindas. Obrigado! Por favor, deixe-me saber se mais informações da minha configuração são necessárias!

Responder1

Devo me livrar do <Directory />bloqueio?

Claro! Definitivamente, isso é algo que você pode controlar no nível do servidor, e não no vhost.

Isso nada mais é do que PHP, então acho que não há razão para manter o bloco cgi e o alias por perto.

Destrua isso.

Acho que também posso me livrar das coisas do documento.

Destrua isso. Ele está lá para que você possa usar o servidor web recém-instalado para navegar pela documentação do seu sistema. É um exemplo fofo, mas na minha opinião não pertence a um arquivo de configuração padrão.

No seu arquivo de configuração proposto: parece bom! A única recomendação que eu faria é alterar o AllowOverride Allbloco de diretório para AllowOverride Nonese você não estiver usando .htaccessarquivos - e se estiver usando .htaccessarquivos, recomendo detoná-los e colocar sua configuração no bloco de diretório. (veja aqui para obter detalhes sobre por que eu digo isso)

informação relacionada