Erros de host virtual, avisos e problemas no Ubuntu

0

Eu provavelmente tenho algo errado. Parece que sempre tenho problemas ao tentar configurar meus hosts virtuais corretamente.

Estou recebendo este erro depois de reiniciar o Apache:

Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Wed Oct 14 17:39:17 2009] [warn] VirtualHost site1.local:0 overlaps with VirtualHost site2.local:0, the first has precedence, perhaps you need a NameVirtualHost directive

Por que ele está usando 127.0.1.1 para ServerName? E por que meu host virtual local2.2.nocal não está funcionando?

Aqui está meu arquivo de hosts:

# /etc/hosts
127.0.0.1   localhost site1.local site2.local
127.0.1.1   andrew-laptop


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Em / etc / apache2 / sites-available eu tenho 3 arquivos: padrão, site1.local e site2.local

padrão:

NameVirtualHost *
<VirtualHost *>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
    ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

site1.local:

<VirtualHost site1.local>
    ServerAdmin webmaster@localhost
    ServerName admin
    DocumentRoot /home/andrew/Projects/site1/public
    CustomLog /var/log/apache2/site1-access.log combined
    <Directory /home/andrew/Projects/site1/public>
        Options FollowSymLinks
    AllowOverride All
    </Directory>
</VirtualHost>

site2.local:

<VirtualHost site2.local>
    ServerAdmin webmaster@localhost
    ServerName admin
    DocumentRoot /home/andrew/Projects/site2/public
    CustomLog /var/log/apache2/site2-access.log combined
    <Directory /home/andrew/Projects/site2/public>
        Options FollowSymLinks
    AllowOverride All
    </Directory>
</VirtualHost>

Se algo parecer errado, por favor me avise. Por favor, ajude-me a descobrir o que há de errado com a minha configuração.

    
por Andrew 15.10.2009 / 02:57

2 respostas

1

Eu acredito que você deveria estar usando site1.local / site2.local como seus parâmetros ServerName em seus arquivos host virtuais ... pelo menos é o que funciona para mim.

O padrão 127.0.0.1 ServerName provavelmente está sendo definido no apache2.conf.

    
por 15.10.2009 / 04:06
2

Aqui está um problema: em / etc / hosts, sua linha localhosts está errada. Você tem isso:

# /etc/hosts
127.0.0.1   localhost site1.local site2.local

Você precisa para ter isto:

# /etc/hosts
127.0.0.1   localhost.localdomain localhost

A linha superior é importante. Você pode atribuir site1.local e site2.local a praticamente qualquer outra coisa, mas a linha superior precisa incluir localhost.localdomain e localhost .

Não tenho certeza do que a magia negra é responsável, mas as coisas quebram de forma estranha no Ubuntu 9.04 e no Debian 5.0.3 se essa linha for alterada para outra coisa. Minha recente instalação Debian teve os mesmos erros do Apache (além de algumas outras quebras interessantes) até que eu revertesse minhas próprias alterações para aquela linha.

Como você ainda precisa definir site1.local e site2.local , você pode fazer assim:

127.0.1.1   andrew-laptop site1.local site2.local

Mas o Apache pode preferir endereços IP diferentes para os sites, então é melhor você fazer isso da seguinte maneira:

127.0.1.1   andrew-laptop
127.0.1.2   site1.local
127.0.1.3   site2.local

A rede 127.0.0.0/8 é de loopback, então você pode escolher qualquer endereço 127.x.x.x que desejar para eles.

    
por 15.10.2009 / 05:02