A Directory
diretiva Apache deveria ser relativa ao DocumentRoot ou não? Eu pergunto no contexto de um VirtualHost, mas não deve fazer nenhuma diferença.
Em outras palavras, deveria ser:
<VirtualHost>
DocumentRoot /var/www
<Directory /var/www>
...
ou
<VirtualHost>
DocumentRoot /var/www
<Directory />
...
Ambos funcionam. Os documentos do Diretório Apache dizem:
O caminho do diretório é o caminho completo para um diretório ou uma sequência de caracteres curinga ...
... mas eles mostram dois exemplos que contradizem a declaração "caminho completo".
ED: Também existem exemplos contraditórios na página Ajuste de desempenho do Apache nas seções FollowSymLinks e SymLinksIfOwnerMatch e AllowOverride .
Por diversão, olhei a configuração vhost padrão do Debian e encontrei o seguinte:
<VirtualHost *:80>
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
...
fonte
/
, por que o Apache atende ao/var/www
diretório?DocumentRoot
. ADirectory
diretiva é totalmente separada e tem o efeito de dizer "aplique a configuração incluída neste diretório e em todos os subdiretórios". Configurações mais específicas têm prioridade, portanto<Directory /var/www/>
serão substituídas<Directory />
.<Directory />
partir de um contexto do VirtualHost, pode substituir as opções (ou outras configurações) em todo o servidor<Directory />
? Isso faz sentido. Obrigado pela ajuda.