[APACHE] Virtual-Hosts - Problem

Boeby

Lieutenant
Registriert
Sep. 2006
Beiträge
945
[Gelöst] [APACHE] Virtual-Hosts - Problem (Debian6)

Hallo,

Ich versuche derzeit erste Erfahrungen mit VirtualHosts unter Apache in einer VM zu machen. Diese Erfahrungen sind nicht allzu erfolgreich:
(Eigentlich ist es ja wirklich nichts schwieriges..)

Ich habe 2 Hostnamen die auf 127.0.0.1 zeigen (per Hosts-Datei)
Beide sollen natürlich auf Port80 reagieren, jenachdem welchen ich anspreche..

Ich habe den neuesten Apache2 aus den Repository installiert 2.2.16.
Was mich an dieser Stelle verwundert ist, dass in der Apache2 Dokumentation unter VirtualHosts nichts über die Ordner "sites-available" und "sites-enabled" geschrieben wird:
http://httpd.apache.org/docs/2.2/de/vhosts/name-based.html

Andere Seiten schreiben, dass die Conf-Files in dem Ordner sites-available mit verknüpfung zu sites-enabled reicht. Eine von vielen:
http://wiki.gandi.net/en/hosting/using-linux/tutorials/ubuntu/virtualhosts

Zurzeit habe ich folgende Configuration:
root@DNS:/etc/apache2/sites-available# cat boeby.ch.conf
<VirtualHost *>
ServerAdmin xxxx@hotmail.com
ServerAlias www.boeby.ch
DocumentRoot /var/www/boeby.ch/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
CustomLog /var/log/apache2/boeby.ch-access.log combined
</VirtualHost>

das zweite conf-file ist identisch bis auf den hostnamen natürlich.
Die httpd.conf komplett leer (oder auskommentiert).

Beim Restart des Servers erhalte ich diesen Output:
Restarting web server: apache2[Sat Jul 23 16:45:19 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
... waiting [Sat Jul 23 16:45:20 2011] [warn] NameVirtualHost *:80 has no VirtualHosts

QUIZFRAGE: Was läuft falsch ? (Scheint was mit dem <VirtualHost *> aus dem Config-File zu sein)
 
Zuletzt bearbeitet: (Gelöst)
In deiner
/etc/apache2/ports.conf steht wahrscheinlich: "NameVirtualHost *:80".
Dann müssen deine vHosts auch so konfiguriert sein. Also <VirtualHost *> in "<VirtualHost *:80>" ändern.

Die Verzeichnisse sites-available und sites-enabled wurden (glaube ich) von Debian eingeführt (und sind eine gute Möglichkeit Ordnung zu halten - genau wie die entsprechenden mods-Verzeichnisse).
 
Warum ist deine komplette httpd.conf leer ?
Warum trägst die 2 virtualHosts nicht in die httpd.conf ein ?

Versuchs mal so:
NameVirtualHost *

<VirtualHost *>
ServerName server1
DocumentRoot "/var/www/htdocs"
</VirtualHost>

<VirtualHost *>
ServerName server2
DocumentRoot "/var/www/server2"
</VirtualHost>

<VirtualHost *>
ServerName server3
DocumentRoot "/var/www/server3"
</VirtualHost>
 
marcol1979 schrieb:
Warum ist deine komplette httpd.conf leer ?
Warum trägst die 2 virtualHosts nicht in die httpd.conf ein ?

Weil die httpd.conf deprecated ist und nicht mehr verwendet werden sollte. Dafür gibt es jetzt die apache2.conf
 
debian und damit auch ubuntu weichen von der standard konfiguration ab und haben teilweise eigene scripts eingeführt. je nach dem, ob du aus entsprechenden repositories geladen hast, würde ich auf den jeweiligen seiten nachlesen, wie die konfiguration funktioniert. ich habe auch eine weile gebraucht, um mich durchzuarbeiten, aber es ist möglich ;)
 
Ja, ich habe ein Debian6 am laufen, in der VM.

mstramm schrieb:
In deiner
/etc/apache2/ports.conf steht wahrscheinlich: "NameVirtualHost *:80".
Dann müssen deine vHosts auch so konfiguriert sein. Also <VirtualHost *> in "<VirtualHost *:80>" ändern.

Die Verzeichnisse sites-available und sites-enabled wurden (glaube ich) von Debian eingeführt (und sind eine gute Möglichkeit Ordnung zu halten - genau wie die entsprechenden mods-Verzeichnisse).

Danke dir. Ja mit VirtualHost *:80 erhalte ich zumindest keine Fehler mehr.
Beim Aufruf von boeby.ch erhalte ich jetzt die richtige Page. Beim aufruf des 2. Namen (study.ch) erhalte ich aber trotzdem den Inhalt von der anderen domain. Die default-configuration habe ich dabei disabled (in sites-enabled den link gelöscht). Scheint als sei "boeby.ch" jetzt zur default gekommen..

(Ist es möglich dass es einen Unterschied macht, weil ich die Hostnamen per Hosts-Datei auflöse und nicht mit einem richtigen DNS ? - Das ganze mit einem Bind9 umzusetzen wäre dann der nächste Schritt, wenn Apache funktioniert)

Danke euch allen. Dass Debian und Ubuntu was abgeändert haben, war mir bis anhin nicht bekannt.. Habe natürlich alles mit der httpd auch ausprobiert, ebenfalls erfolglos.
 
Der erste vHost ist immer default.
Hast du das ServerName Attribut in beiden vHost Einträgen (muss sein): ServerName www.study.ch

Bedenke, dass study.ch und www.study.ch unterschiedliche Domains sind!
 
@mstramm
Danke dir vielmals! Super Hilfe!

Ja, die "www" habe ich jeweils als ServerAliases drin. Wie oben im 1. Post.
Leider hat mir das ServerName Attribut gefehlt :(
Doofer Fehler der mir vermutlich mit dem herumspielen der Config-Dateien passiert ist.

Frage trotzdem (rein wissenshalber):
Angenommen der Server wird direkt über die IP angesprochen. Dann kann ja kein Namen zugeordnet werden und es sollte eine default-Seite erscheinen. ("Error 404: Kein vhost direkt angesprochen" - oder sowas..)
Ist die bestehende default-configuration für diesen zweck gedacht, oder kann es sein, dass obwohl ich sie aktiviert habe, die boeby.ch als default aufgerufen wird ? "b" ist ja im alphabet vor "d"..
Also ist die default irgendwas spezielles oder nicht ? (z.b. im apache als default hardcoded genau für diesen zweck ? )
 
Gern geschehen *g*

Nein, da ist nichts entsprechendes vorhanden. Es wird einfach der erste passende vHost genommen.

Bei Bedarf kannst du dir auch mal: /usr/share/doc/apache2/README.Debian.gz anschauen. Da steht z.B.:

Code:
sites-enabled/

        Similar in functionality to mods-enabled/, sites-enabled
        contains symlinks to sites in sites-available/ that the
        admnistrator wishes to enable.

        Apache uses the first VirtualHost that matches the IP/Port
        as default for named virtual hosts. Therefore the 'default'
        site is linked to '000-default' so that it will be read first.
 
Voll ins Schwarze! danke dir, genau die Antwort wollte ich hören.. :)
 
Zurück
Oben