Apache2 2.2.14 configuração com múltiplos hosts virtuais para testes locais

4

Eu configurei um host virtual do Apache 2 por esse método.

em /etc/apache2/sites-available , criei um dummy_site_1.conf

dummy_site_1.conf

<VirtualHost local.dummy_site_1:80>
    ServerName local.dummy_site_1
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/dummy_site_1
    ErrorLog /var/log/apache2/dummy_site_1__error.log
    TransferLog /var/log/apache2/dummy_site_1__access.log
    <Directory /var/www/dummy_site_1>
        AllowOverride Options Limit None
        Options -Indexes FollowSymLinks
    Order deny,allow
    Allow from all
    </Directory>
    DirectoryIndex index.php
    #DISABLE HTTP TRACE
    #RewriteEngine On
    #RewriteCond %{REQUEST_METHOD} ^TRACE
    #RewriteRule .* - [F]
</VirtualHost>

Também adicionei esta linha a httpd.conf :

ServerName local.dummy_site_1

Agora, tudo está funcionando com essa configuração, digito local.dummy_site_1 na URL e posso ver meu site.

O problema é quando tento adicionar outra configuração de site dummy_site_2.conf e criar as mesmas configurações

dummy_site_2.conf

<VirtualHost local.dummy_site_2:80>
    ServerName local.dummy_site_2
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/dummy_site_2
    ErrorLog /var/log/apache2/dummy_site_2__error.log
    TransferLog /var/log/apache2/dummy_site_2__access.log
    <Directory /var/www/dummy_site_2>
        AllowOverride Options Limit None
        Options -Indexes FollowSymLinks
    Order deny,allow
    Allow from all
    </Directory>
    DirectoryIndex index.php
    #DISABLE HTTP TRACE
    #RewriteEngine On
    #RewriteCond %{REQUEST_METHOD} ^TRACE
    #RewriteRule .* - [F]
</VirtualHost>

Também adicionei esta linha a httpd.conf :

ServerName local.dummy_site_2

Eu recebo este erro:

user@host:/etc/apache2$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2                                                                                                                                                                     [Wed Sep 15 14:00:43 2010] [error] (EAI 5)No address associated with hostname: Could not resolve host name local.dummy_site_2 -- ignoring!
 ... waiting [Wed Sep 15 14:00:44 2010] [error] (EAI 5)No address associated with hostname: Could not resolve host name local.dummy_site_2 -- ignoring!

Por quê? estou configurando isso errado?

    
por Phill Pafford 15.09.2010 / 20:02

2 respostas

6

Você não precisa de ' ServerName local.dummy_site_2 ' no arquivo httpd.conf, então adicione:

NameVirtualHost ip-address-of-server:80

por exemplo: NameVirtualHost 192.168.1.10:80

Depois de fazer a alteração, você precisará reiniciar o Apache.

Se as coisas ainda não funcionarem como esperado, adicione uma linha a cada um dos arquivos conf do virtualhost abaixo das linhas do nome do servidor para que elas fiquem assim:

ServerName local.dummy_site_1
ServerAlias *.local.dummy_site_1 local.dummy_site_1

e

ServerName local.dummy_site_2
ServerAlias *.local.dummy_site_2 local.dummy_site_2

Novamente, reinicie o Apache para verificar as alterações.

EDIT: Silly me - acabou de ver o outro bit do problema - TODAS as suas declarações do VirtualHost devem usar o endereço IP do servidor virtual - por exemplo:

<VirtualHost 192.168.1.10:80>
    
por 15.09.2010 / 20:38
1

Na verdade, você pode remover o endereço IP e / ou o nome do site.

exemplo:

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/path/to/vhost/documents"
ServerName servername.domain.tld
ServerAlias serveralias.domain.tld
ErrorLog "/path/to/logfiles/servername.domain.tld-error.log"
CustomLog "/path/to/logfiles/servername.domain.tld-access.log" common
<Directory "/path/to/vhost/documents">
allow from all
Option +Indexes
</Directory>
</VirtualHost>

<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot "/path/to/vhost/documents"
ServerName servername.domain.tld
ServerAlias serveralias.domain.tld
SSLEngine On
SSLCertificateFile /path/to/certificate/file.cert
SSLCertificateKeyFile /path/to/certificate/file.key
ErrorLog "/path/to/logfiles/servername.domain.tld-error.log"
CustomLog "/path/to/logfiles/servername.domain.tld-access.log" common
<Directory "/path/to/vhost/documents">
allow from all
Option +Indexes
</Directory>
</VirtualHost>

(Agora, vamos fazer um exemplo de vhost combinado com mod_proxy; ip = numeric-octet, abaixo)

<VirtualHost *:80>
ProxyPreserveHost Off
ProxyPass / http://ip.ip.ip.ip/
ProxyPassReverse / http://ip.ip.ip.ip/
ServerName servername.domain.tld
</VirtualHost>

Basicamente, desde que suas informações de DNS correspondam aos vhosts que você configura, tudo deve funcionar.

    
por 28.09.2011 / 15:53