Tive um problema estranho ao tentar definir vários hosts virtuais no Apache. Este é o meu código para o arquivo httpd.conf:
<VirtualHost *:8888>
ServerName site1.local
DocumentRoot /Applications/MAMP/htdocs/site1/public
<Directory /Applications/MAMP/htdocs/site1/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:8888>
ServerName site2.local
DocumentRoot /Applications/MAMP/htdocs/site2/public
<Directory /Applications/MAMP/htdocs/site2/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Quando tento acessar “site2.local” no navegador, sou redirecionado para “site1.local”. Isso acontecerá com todas as definições do VirtualHost que insiro abaixo no arquivo httpd.conf. Quando quero acessar "site2.local" ou qualquer outro, preciso colocar sua definição de VirtualHost no topo (como a primeira). Então, presumo que o Apache esteja executando corretamente apenas o primeiro VirtualHost.
Além disso, outro problema: se eu tentar acessar algum arquivo do projeto na minha pasta htdocs que não esteja definido no VirtualHost, receberei uma mensagem "Proibido, você não tem permissão para acessar/projeto/neste servidor". Se eu quiser acessar algum desses projetos, preciso remover todas as definições do VirtualHost no arquivo httpd.conf.
O que estou fazendo errado?
No meu caso, estes (definidos no VirtualHost) são projetos PHP com Zend Framework. Estou usando MacOSX.
Obrigado
Responder1
você está faltando
NameVirtualHost *:8888
e
<VirtualHost _default_:8888>
DocumentRoot /www/default
</VirtualHost>
Para obter mais informações sobre o host virtual padrão do Apache, você pode ler este documento online
http://httpd.apache.org/docs/2.2/vhosts/examples.html