problema dos hosts virtuais do apache no Windows - explique

2

Este problema nunca ocorreu no passado (tentei isso muitas vezes), mas desta vez,

TODOS os hosts virtuais definidos no arquivo virtual-hosts.conf no diretório de instalação do apache direcionam o navegador para o diretório documentRoot do servidor apache.

Estou usando o windows 7 com a versão mais recente do apache.

Estes são os hosts virtuais definidos

NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerName dev.a.local
    ServerAlias dev.a.local
    DocumentRoot "D:/wwwroot/a/public"
    ErrorLog "logs/a.log"
    CustomLog "logs/a-access.log" common

    <Directory "D:/wwwroot/a/public">
        Options Indexes FollowSymLinks
        AllowOverride All
    # Controls who can get stuff from this server.
     Order allow,deny
         Allow from all
         DirectoryIndex index.php
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName dev.b.local
    ServerAlias dev.b.local
    DocumentRoot "D:/wwwroot/b/public"
    ErrorLog "logs/b.log"
    CustomLog "logs/b-access.log" common

    <Directory "D:/wwwroot/b/public"s>
        Options Indexes FollowSymLinks
        AllowOverride All
    # Controls who can get stuff from this server.
     Order allow,deny
         Allow from all
         DirectoryIndex index.php
    </Directory>
</VirtualHost>

Eu modifiquei o arquivo hosts e adicionei

127.0.0.1 dev.a.local 
127.0.0.1 dev.b.local

Quando eu tento acessar dev.a.local ou dev.b.local eu sou direcionado para o documentRoot do apache definido no httpd.conf.

Por favor ajude.

    
por Andreas 29.05.2012 / 21:35

2 respostas

2

Eu nunca vi vários

  <VirtualHost *:80>

entradas antes, e ficaria muito surpreso se isso realmente separasse o tráfego. Além disso, definir um serverAlias igual ao servername é definitivamente redundante. E o seu exemplo não mostra a configuração serverRoot (esperamos que seja diferente do documentRoot ou você terá grandes problemas). Experimente:

NameVirtualHost *:80

<VirtualHost dev.a.local>
DocumentRoot "D:/wwwroot/a/public"
ErrorLog "logs/a.log"
CustomLog "logs/a-access.log" common

<Directory "D:/wwwroot/a/public">
    Options Indexes FollowSymLinks
    AllowOverride All
# Controls who can get stuff from this server.
 Order allow,deny
     Allow from all
     DirectoryIndex index.php
</Directory>
</VirtualHost>

<VirtualHost dev.b.local>
DocumentRoot "D:/wwwroot/b/public"
ErrorLog "logs/b.log"
CustomLog "logs/b-access.log" common

<Directory "D:/wwwroot/b/public">
    Options Indexes FollowSymLinks
    AllowOverride All
# Controls who can get stuff from this server.
 Order allow,deny
     Allow from all
     DirectoryIndex index.php
</Directory>
</VirtualHost>
    
por 29.05.2012 / 23:37
2

O arquivo que você definiu em <VirtualHost> blocks não está sendo incluído em sua configuração (a menos que a configuração do serviço esteja definindo um caminho de configuração personalizado em sua linha de comando - verifique isso no snap-in do MMC de serviços).

Se o conteúdo que você postou é todo o conteúdo do arquivo, então deve ser seguro incluí-lo diretamente da sua configuração principal.

Include /path/to/virtual-hosts.conf

Ou, se o arquivo virtual-hosts.conf contiver todas as configurações básicas do servidor, como está no seu arquivo de configuração principal, ele pode ser usado como substituto imediato do arquivo de configuração principal atual?

A outra opção é apenas colocar sua configuração dos vhosts no arquivo de configuração principal em vez do arquivo de configuração virtualhosts onde você os possui atualmente.

    
por 30.05.2012 / 00:39