Apache - Diferença entre VirtualDocumentRoot e DocumentRoot?

2

Eu achei muito difícil encontrar essa resposta, depois de uma hora (sim, uma hora) de pesquisando e navegando por vários posts no stackexchange e vários outros fóruns ... até mesmo através da Documentação do Apache!

Eu poderia não para a vida de mim descobrir qual é a diferença entre esses dois, além disso, sou relativamente inexperiente com o Apache.

Me deparei com isso quando procurava soluções alternativas para criar um servidor dev para PHP e MySQL na minha máquina local. Eu estava seguindo este tutorial:

link

... que menciona "VirtualDocumentRoot" mas não especifica porque esta é uma escolha melhor (é?) sobre o DocumentRoot.

Quaisquer leads ou links para onde eu possa encontrar documentação sobre isso seriam muito apreciados. Obrigado!

Nota: O mais próximo que encontrei da documentação foi apenas no DocumentRoot link

    
por Jay 30.07.2015 / 01:23

3 respostas

5

DocumentRoot é uma diretiva padrão do Apache. Dependendo do contexto em que é usado, ele define a raiz global do documento ou a raiz do documento de um host virtual para um caminho fixo.

VirtualDocumentRoot é uma diretiva para o módulo do Apache mod_vhost_alias. Ele define a raiz do documento como um caminho dinâmico que pode conter variáveis que são avaliadas quando uma solicitação real é manipulada. Dessa forma, o documento efetivo root pode depender do nome do host e do número de porta reais solicitados, sem definir hosts virtuais separados para todas as combinações.

    
por 01.08.2015 / 03:35
2

DocumentRoot só pode ser definido como 1 valor por VirtualHost configurado.

O VirtualDocumentRoot permite um host virtual único , que manipula ostensivamente o tráfego para muitos domínios não relacionados, e age como se cada domínio apontasse para uma raiz de documento única.

    
por 01.08.2015 / 01:34
1

Meu entendimento da diferença é que DocumentRoot mais como uma variável global para uso no arquivo de configuração do apache, é uma única varable que declara a raiz global para web root.

VirtualDocumentRoot é usado quando você está definindo Virtualhost como uma variável aninhada dentro e não pode ser uma variável singular. Como o nome indica, é a raiz do documento para um host virtual

Portanto, em termos simples, o DocumentRoot é a raiz global da configuração do apache e o VirtualDocumentRoot é a raiz de um host virtual.

    
por 30.07.2015 / 02:04