Apache vhost alias funktioniert nicht wenn gleich Server hostname

mattla93

New Member
Hallo,

habe folgendes Problem


Möchte in Apache einen vhost einrichten, funktioniert aber leider nicht und nur dann, wenn der hostname des Servers gleich ist wie der vhost in der Apache config:

In meinem Fall hat der Server den Hostname example.com

In meinem vhost steht folgendes:
Code:
<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com example test.example.com
        ServerAdmin webmaster@example.com
        DocumentRoot /var/www/example.com/htdocs
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

example.com zeigt den default vhost, ebenso example.
www.example.com und test.example.com zeigen den korrekten vhost von /var/www/example.com/htdocs


Der Default vhost wurde nicht verändert. Ich habe auch versucht als ServerName die Domain mit www anzugeben und im Alias jene ohne www, brachte aber das selbe resultat.

Auf meinem Server läuft Debian Squeeze, mit den aktuellsten Versionen:
Code:
cat /etc/debian_version
6.0.2

apache2 -v
Server version: Apache/2.2.16 (Debian)
Server built:   Sep  4 2011 21:02:22

 /etc/apache2/mods-enabled # ls
alias.conf       authz_default.load    autoindex.conf  deflate.load  mime.conf         php5.conf        rewrite.load   status.load
alias.load       authz_groupfile.load  autoindex.load  dir.conf      mime.load         php5.load        setenvif.conf
auth_basic.load  authz_host.load       cgi.load        dir.load      negotiation.conf  reqtimeout.conf  setenvif.load
authn_file.load  authz_user.load       deflate.conf    env.load      negotiation.load  reqtimeout.load  status.conf


Wenn ich dann aber den hostname ändere und anschließend den ApacheServer neu starte, dann funktioniert der vhost. Ich möchte aber den hostname = dieser Domain lassen, ist das möglich?
Code:
 hostname test.com

/etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Kann mir jemand helfen?
 
Das muß eigentlich funktionieren - ich mache es genauso.
Gibt es vielleicht noch einen anderen vHost, der mit $hostname referenziert wird?
 
Das muß eigentlich funktionieren - ich mache es genauso.
Gibt es vielleicht noch einen anderen vHost, der mit $hostname referenziert wird?


Nein:
Code:
root@test /etc/apache2 # grep -R "hostname" ./*
./apache2.conf:#     different IP addresses or hostnames and have them handled by the

Das System ist von hetzner, ein Standart Debian Squeeze 6.0 Minimal Image (installimage vom rescue system), mit Apache2 standart Installation.


EDIT:

Folgendes hat !nicht! funktioniert:

ich hatte im Vhost
Code:
<VirtualHost *:80>
da habe ich das '*' durch die Server IP ersetzt:
Code:
<VirtualHost 176.1.1.1:80>
den Webserver neu gestartet, jetzt funktioniert es. Warum es anders nicht funktioniert kann ich mir selbst nicht erklären, sollte ja eigentlich das selbe sein, dur dass das * auf allen IP's lauscht...

EDIT2:

Bei der obigen Variante funktioniert dann der default vhost, der auf die IP reagieren sollte und allen nicht definierten Seiten nicht mehr....
 
Last edited by a moderator:
Folgendes habe ich herausgefunden:

der Hostname eines Systems sollte immer Unique sein, unabhängig von den Domains, da für den default vhost IMMER der hostname verwendet wird.

Eine Alternative ist, den default vhost von 000-default auf ZZZ-default umzubenennen, so wird der default vhost erst NACH den anderen vhosts geprüft und nicht als erster.
 
Back
Top