
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:
Devo me livrar do
<Directory />
bloqueio? É especificado$APACHE_HOME/conf.d/security
com 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?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.
Acho que também posso me livrar dessas
doc
coisas. 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 All
bloco de diretório para AllowOverride None
se você não estiver usando .htaccess
arquivos - e se estiver usando .htaccess
arquivos, recomendo detoná-los e colocar sua configuração no bloco de diretório. (veja aqui para obter detalhes sobre por que eu digo isso)