Hosts virtuais baseados em nome no Apache

4

Estou tendo problemas para configurar os Hosts Virtuais baseados em nome.

Eu posso iniciar o servidor com "service apache2 start" com um arquivo httpd.conf em branco, e ele será executado com tudo apontando para / var / www, como esperado.

Quando eu preencher o httpd.conf com:
# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/kevins_playground
ServerName home.coolkev.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/flatline_and_co
ServerName www.flatline_and_co.com

# Other directives here

</VirtualHost>

Eu recebo este erro ao executar o "serviço apache2 start"

root@kevin-server:/etc/apache2# service apache2 start
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Thu Jul 26 20:10:01 2012] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.

Eu encontrei uma solução,

  1. Eu removi todas as minhas alterações para o httpd.conf, para mim, isso deixou um arquivo em branco.
  2. copiei o arquivo de site padrão existente em ./sites-available/ para meus dois Hosts virtuais.
  3. Eu editei esses dois arquivos e substituí os valores onde fazia sentido, acho que deveria ser óbvio onde eles precisam mudar (pasta base do site, URL do site).
  4. Eu criei sym-links como você deveria em ./sites-enabled /
  5. Eu reiniciei o servidor web 'serviço sudo apache2 restart' e funcionou.

Acho que o problema surgiu do fato de que, ao analisar os arquivos, o Apache descobriu dois arquivos com "< VirtualHost >", meu httpd.conf e a configuração padrão do site em ./sites-available /

    
por Kevin Johnson 27.07.2012 / 02:40

1 resposta

1

Contanto que você não tenha tocado no vhost padrão (que já contém uma diretiva NameVirtualHost *: 80), você não deve duplicar o comportamento padrão.

Já que você tem que sofrer Debuntu, por que não ir com ele e colocar seus vhosts em / etc / apache2 / sites-enabled /, um por arquivo?

    
por 27.07.2012 / 14:12