Entrada do Apache Virtualhost com o nome do host do Windows

1

Eu tenho um controlador de domínio do Windows e o usamos para DNS em nossa rede interna. Eu tenho uma caixa do Ubuntu com um endereço IP de 172.16.34.149. No DNS do Windows, criei as entradas de pesquisa direta e inversa para o nome Endymion.

Naturalmente, quando eu já FTP / SSH / HTTP / etc para o nome de host Endymion ele resolve corretamente para minha caixa de Ubuntu.

Eu queria fazer algum desenvolvimento na Web nesta caixa para um site existente. Houve problemas quando coloquei o site em uma subpasta de / var / www /. Vamos apenas dizer que estava na pasta / var / www / projectx /. O problema envolveu a resolução incorreta de URLs não relativos.

Então eu imaginei que poderia criar uma nova entrada de DNS para o hostname projectx. Com certeza, quando eu FTP / SSH / HTTP / etc para o hostname projectx ele me leva para a mesma caixa do Ubuntu que o nome do host Endymion ... isto é o que eu esperaria. Agora tenho dois nomes de host para a mesma caixa.

Eu então crio uma entrada Virtualhost no httpd.conf que se parece com o seguinte:

<VirtualHost *:80>
        DocumentRoot /var/www/projectx
        ServerName projectx
        ServerAlias projectx
</VirtualHost>

Com certeza, quando eu vou para um navegador e digito link , ele me leva à subpasta correta. Tudo funciona !!!

Não tão rápido.

Eu então vou para link e ao invés de me levar para / var / www / ele me leva para / var / www / projectx /

Claramente, estou perdendo alguma coisa. Ajuda por favor! ;)

    
por gshauger 04.04.2012 / 01:00

2 respostas

2

Dê uma olhada na documentação do Apache em hosts virtuais baseados em nome e você encontrará esta informação:

Main host goes away

If you are adding virtual hosts to an existing web server, you must also create a block for the existing host. The ServerName and DocumentRoot included in this virtual host should be the same as the global ServerName and DocumentRoot. List this virtual host first in the configuration file so that it will act as the default host.

Em outras palavras, assim que você criar um host virtual, o DocumentRoot na configuração do seu servidor principal torna-se irrelevante. O Apache selecionará o primeiro host virtual definido para nomes que não correspondem explicitamente a ServerName ou ServerAlias Por isso, você precisará criar uma entrada para seu host principal no arquivo de configuração antes de qualquer outro VirtualHost blocks.

    
por 04.04.2012 / 02:47
1

Eu acho que você precisará criar uma entrada virtualhost para endymion também, algo como:

<VirtualHost *:80>
        DocumentRoot /var/www/example
        ServerName endmymion
        ServerAlias endmymion
</VirtualHost>

Claro que usar o default vhost também funciona como comentado acima.

    
por 04.04.2012 / 02:47