vhosts - die hunderte ;-)

Alles, was den Apache betrifft, kann hier besprochen werden.

vhosts - die hunderte ;-)

Postby ragman » 18. March 2004 11:44

Hallo zusammen,

ich bin ein Newbie und schön langsam aber sicher am durchdrehen :?

Auf einem W2k-Server läuft minixampp. Soweit so gut, funktioniert auch alles.

Über einen Webhoster läuft die Domain ragen.at, die auf meine IP (83.64.16.78 ) zeigt, ebenso die DNS-Einträge.

Nun habe ich gebeten, daß er mir die Subdomains klaus und micromagic anlegt, was auch erledigt ist.

Die Einträge bei mir schauen so aus:

Code: Select all
NameVirtualHost 83.64.16.78
<VirtualHost 83.64.16.78>
   ServerAdmin klaus@ragen.at
   ServerName ragen.at
   DocumentRoot c:/www/ragen
   ErrorLog c:/www/ragen/error.log
   CustomLog c:/www/ragen/access.log common
</VirtualHost>

NameVirtualHost 83.64.16.78
<VirtualHost 83.64.16.78>
   ServerAdmin klaus@ragen.at
   ServerName klaus.ragen.at
   DocumentRoot c:/www/ragen/klaus
   ErrorLog c:/www/ragen/klaus/error.log
   CustomLog c:/www/ragen/klaus/access.log common
</VirtualHost>

NameVirtualHost 83.64.16.78
<VirtualHost 83.64.16.78>
   ServerAdmin klaus@ragen.at
   ServerName micromagic.ragen.at
   DocumentRoot c:/www/ragen/mm
   ErrorLog c:/www/ragen/mm/error.log
   CustomLog c:/www/ragen/mm/access.log common
</VirtualHost>


Der Apache startet normal, leider werde alle Versuche klaus.ragen.at oder micromagic.ragen.at zu erreichen auf die Domain ragen.at umgeleitet. Einzig ragen.at/klaus und ragen.at/micromagic funktioniert, ist aber eben nicht so geplant.

Was mache ich falsch? Durch die externen DNS-Einträge braucht mich die hosts-Datei ja gar nicht interessieren, oder? (Wobei - das kanns ja auch nicht sein, habe ich ja schon probiert.)

Das Forum habe ich bereits mehrfach durchsucht, verschiedene Sachen ausprobiert, funktioniert hat bis jetzt nichts.

Jetzt bin ich ratlos und harre eurer Weisheit. Bitte laßt mich nicht hängen. :(
ragman
 
Posts: 11
Joined: 18. March 2004 11:30

Postby Wiedmann » 18. March 2004 12:30

Hallo,
so sollt es gehen. Einen passenden directory-Abschnitt für "c:/www/ragen/" und darunter hast du ja schon wo definiert, denk ich mal.

Code: Select all
#
# Hauptserver Konfig
#
ServerAdmin klaus@ragen.at
ServerName www.ragen.at
DocumentRoot "c:/www/ragen/"
ErrorLog "c:/www/ragen/error.log"
CustomLog "c:/www/ragen/access.log" common

#
#Virtual Hosts Konfig
#
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.ragen.at
    ServerAlias ragen.at
</VirtualHost>

<VirtualHost *:80>
   ServerName klaus.ragen.at
   DocumentRoot "c:/www/ragen/klaus/"
   ErrorLog "c:/www/ragen/klaus/error.log"
   CustomLog "c:/www/ragen/klaus/access.log" common
</VirtualHost>

<VirtualHost *:80>
   ServerName micromagic.ragen.at
   DocumentRoot "c:/www/ragen/mm/"
   ErrorLog "c:/www/ragen/mm/error.log"
   CustomLog "c:/www/ragen/mm/access.log" common
</VirtualHost>


(PS: Direktiven die im VirtualHost - Abschnitt nicht definiert wurden, werden sofern dort definiert, von der Hauptserver - Konfiguration übernommen)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby ragman » 18. March 2004 12:49

dankedankedankedankedankedankedankedankedankedankedankedanke
dankedankedankedankedankedankedankedankedankedankedankedanke
dankedankedankedankedankedankedankedankedankedankedankedanke

Das Problem lag anscheinend in der Hauptserverkonfig, da stand noch localhost drin, das habe ich auf ragen.at geändert, bei den VirtualHosts dann deine Einträge hinkopiert und es klappt.

Und nochmals danke :)

(Nebenbei dachte ich trotzdem, es funktioniert nicht, das war aber nur der Cache vom Firmenproxy :wink: )
ragman
 
Posts: 11
Joined: 18. March 2004 11:30

Postby Kapinski » 20. March 2004 16:24

Ebenfalls DANKE[50], hab da auch Infos drin gefunden, die mir sehr geholfen haben :)

Habe noch eine weitergehende Frage zum gleichen Thema (VirtualHosts):

Es sollen mehrere URLs (Bsp. www.tüv.de und www.tuev.de) auf das gleiche Verzeichnis verweisen. Wie geht das mit nur einem VirtualHosts, damit der Apache nicht unnötig viel Systemressourcen verbraucht?
Kapinski
 
Posts: 12
Joined: 16. March 2004 23:35
Location: Münsterland

Postby Wiedmann » 20. March 2004 16:30

yep. Schau dir oben mal den 1. vhost an.

ServerName = Hauptname des Vhosts
ServerAlias = weitere Namen des Vhosts
In dem Beispiel oben kommt man deshalt mit
www.ragen.at und ragen.at (sind ja zwei verschiedene) in das selbe DocumentRoot

Welcher Name hinterher beim Browser in der Adresszeile steht, kannst du mit der Direktive "UseCannonicalName" steuern.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Kapinski » 20. March 2004 18:36

Danke :wink:
Kapinski
 
Posts: 12
Joined: 16. March 2004 23:35
Location: Münsterland

Postby Levian » 18. April 2004 14:41

Wiedmann wrote:Hallo,
so sollt es gehen. Einen passenden directory-Abschnitt für "c:/www/ragen/" und darunter hast du ja schon wo definiert, denk ich mal.

Code: Select all
... Code ausgeblendet weil ist ja schon da


(PS: Direktiven die im VirtualHost - Abschnitt nicht definiert wurden, werden sofern dort definiert, von der Hauptserver - Konfiguration übernommen)


Hallo!

Ich war voll glücklich, den Beitrag hier gefunden zu haben, weil er mir scheinbar eine Frage erspart hat...
Aber jetzt muss ich sie trotzdem stellen und komm mir irgendwie unfähig vor...
folgender Code sollte doch nun eigentlich funktionieren, nach allem was ich hier gelesen habe:
Code: Select all
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /xampp/htdocs
</VirtualHost>

<VirtualHost *:80>
    ServerName test
    ServerAdmin webmaster@test
    DocumentRoot /xampp/htdocs/Projekte/test
</VirtualHost>



Tut er aber nicht!
Verzeichnisse existieren, localhost wird auch richtig angezeigt, <directory>-Eintrag ist auch gemacht, bei Eingabe von "http://test" sollte der Browser doch nun die Seite im Verz. "test" anzeigen, oder? Stattdessen versucht er "test" aufzulösen und verbindet mich dann mit "http://www.test.com" ???
Was mache ich falsch?
Hilfe!

liebe Grüße

Levian

P.S.: Habe die Pfadangaben auch schon absolut versucht, in Anführungszeichen, mit Slash am Ende etc. Daran liegt es nicht. Ich weiss nicht, warum Apache die Anfrage nicht bedient, sondern im Internet sucht...
Levian
 
Posts: 2
Joined: 18. April 2004 14:23

Postby Wiedmann » 18. April 2004 14:57

... bei Eingabe von "http://test" sollte der Browser doch nun die Seite im Verz. "test" anzeigen, oder? Stattdessen versucht er "test" aufzulösen und verbindet mich dann mit "http://www.test.com" ???


Damit hast du ja eigentlich schon deine Antwort. Damit VHOSTS die auf DNS-Namen basieren funktionieren, muß der Browser diesen Namen erst einmal auflösen können.

Also ein Ping ("ping test") muß funktionieren und die IP-Adresse von deinem Apache-Rechner zurückgeben. Der Name "test" muß also in einem DNS-Server oder in der HOSTS-Datei eingetragen sein.

Dann kann sich der Browser mit deinem Apache verbinden (ein Browser verbindet sich im Hintergrund immer über die IP). Der Apache schaut dann, ob der in der GET-Anfrage übertragene Hostname zu einem VHOST-ServerName/Alias passt und nimmt diesen als DocumentRoot. Passt kein VHOST wird der DocumentRoot vom ersten Definierten VHOST (Defaultserver) genommen.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Levian » 18. April 2004 15:39

Wiedmann wrote:
... bei Eingabe von "http://test" sollte der Browser doch nun die Seite im Verz. "test" anzeigen, oder? Stattdessen versucht er "test" aufzulösen und verbindet mich dann mit "http://www.test.com" ???


Damit hast du ja eigentlich schon deine Antwort. Damit VHOSTS die auf DNS-Namen basieren funktionieren, muß der Browser diesen Namen erst einmal auflösen können.

Also ein Ping ("ping test") muß funktionieren und die IP-Adresse von deinem Apache-Rechner zurückgeben. Der Name "test" muß also in einem DNS-Server oder in der HOSTS-Datei eingetragen sein.

Dann kann sich der Browser mit deinem Apache verbinden (ein Browser verbindet sich im Hintergrund immer über die IP). Der Apache schaut dann, ob der in der GET-Anfrage übertragene Hostname zu einem VHOST-ServerName/Alias passt und nimmt diesen als DocumentRoot. Passt kein VHOST wird der DocumentRoot vom ersten Definierten VHOST (Defaultserver) genommen.


Coool! Vielen Dank!

Du bist mein perönlicher Held des Tages! :D
Einträge in HOSTS, rebootet, zack hat's funktioniert!
Klar eigentlich, wenn man beginnt drüber nachzudenken... Wieder was dazugelernt zum Thema Webserver.

Also, vielen Dank!

Und ganz lieben Gruß

Levian
Levian
 
Posts: 2
Joined: 18. April 2004 14:23


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests