Se eu tiver um DocumentRoot especificado em meu VirtualHost, preciso de um diretório especificado?

1

Estou usando um arquivo VirtualHost um tanto padrão que eu configurei um tempo atrás (antes que eu tivesse muito conhecimento de como isso funciona), e eu não sei exatamente o que devo manter por perto. Eu não quero apenas tentar coisas porque configurar uma VM com todas essas coisas seria um incômodo, e a configuração atual está em um ambiente de produção, então a 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 bloco <Directory /> ? É especificado em $APACHE_HOME/conf.d/security com o comentário "Isso quebra atualmente as configurações que vêm com alguns pacotes Debian de aplicativo da web." Devo descomentar esta versão e remover a do meu vhost?

  2. Isso não é nada além de PHP, então estou supondo que não há razão para manter o bloco cgi e o alias em volta.

  3. Acredito que também posso me livrar do material doc . Eu nem tenho certeza do que está lá, então pontos de bônus (não realmente) se você puder explicar o que seria usado em uma configuração "normal".

Então, assumindo que estou certo em tudo o que estou pensando, meu novo arquivo vhost poderia ser 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>

Qualquer outra dica é muito bem vinda. Obrigado! Por favor, deixe-me saber se é necessário mais informações da minha configuração!

    
por Andy 06.12.2013 / 16:47

1 resposta

2

Should I get rid of the <Directory /> block?

Claro! Isso é definitivamente algo que você pode manipular no nível do servidor em vez de no vhost.

This is nothing but PHP, so I'm guessing there's no reason to keep the cgi block and alias around.

Nuke isso.

I'm guessing I can also get rid of the doc stuff as well.

Nuke isso. Ele está lá para que você possa usar o servidor da Web recém-instalado para procurar a documentação do seu sistema. É um exemplo fofo, mas na verdade 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 seria alterar AllowOverride All no seu bloco de diretório para AllowOverride None se você não estivesse usando .htaccess arquivos - e se você estivesse usando .htaccess arquivos, eu recomendaria que eles fossem ativados puxando sua configuração para o bloco de diretório. ( veja aqui detalhes sobre por que eu digo isso )

    
por 06.12.2013 / 23:43