0815-4711
Goto Top

apache virtuelle hosts mit vhosts.conf

Servus

Ich habe hier (lokales LAN innerhalb der Firewall) einen Server (WS2003) stehen, auf dem Apache (2.2) läuft. Die IP (192.168.42.211) ist fix und hat einen funktionierenden DNS-A-Eintrag (ddd.nameofdomain.local).

Es sollen zwei verschiedene Webserver darauf laufen (DNS-Alias auf ddd.nameofdomain.local ist eingerichtet):
  • abc.nameofdomain.local
  • xyz.nameofdomain.local

Wenn ich im Browser je einen der drei Servernamen eingebe, erscheint korrekterweise die Standardseite des Apache-Webservers.

Um an den richtigen Content zu gelangen muss man derzeit umständlich im Browser eingeben:
  • ddd.nameofdomain.local/abc
  • ddd.nameofdomain.local/xyz
  • abc.nameofdomain.local/abc
  • xyz.nameofdomain.local/xyz

Um es dann mal einfacher zu haben, habe ich die vhosts.conf wie folgt angepasst:
<VirtualHost *:80>
	ServerName ddd.nameofdomain.local
	ServerAlias abc.nameofdomain.local
	ServerAdmin mymail@nameofdomain.local
	DocumentRoot /abc
	ErrorLog /abc_error.log

	<Directory /abc>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
</VirtualHost>

<VirtualHost *:80>
	ServerName ddd.nameofdomain.local
	ServerAlias xyz.nameofdomain.local
	ServerAdmin mymail@nameofdomain.local
	DocumentRoot /xyz
	ErrorLog /xyz_error.log

	<Directory /xyz>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
</VirtualHost>
Sobald diese Konfiguration aktiv ist, sind die Webserver nicht mehr erreichbar:
Not Found
The requested URL / was not found on this server.
Wer hat eine Idee woran es scheitern könnte und mag mir bitte helfen? face-smile

Content-ID: 99189

Url: https://administrator.de/contentid/99189

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

Arano
Arano 14.10.2008 um 15:32:49 Uhr
Goto Top
Moin,

bei mir schauts so aus:
<VirtualHost *:80>
    ServerAdmin meine@email
    DocumentRoot "/srv/htdocs/meins.dnsalias.com"  
    ServerName meins.dnsalias.com
    ServerAlias www.meins.dnsalias.com
    ErrorLog "logs/meins.dnsalias.com-error_log"  
    CustomLog "logs/meins.dnsalias.com-access_log" common  
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin meine@email
    DocumentRoot "/srv/htdocs/garten.meins.dnsalias.com"  
    ServerName garten.meins.dnsalias.com
    ErrorLog "logs/garten.meins.dnsalias.com-error_log"  
    CustomLog "logs/garten.meins.dnsalias.com-access_log" common  
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin meine@email
    DocumentRoot "/srv/htdocs/ball.meins.dnsalias.com"  
    ServerName ball.meins.dnsalias.com
    ServerAlias ball
    ErrorLog "logs/ball.meins.dnsalias.com-error_log"  
    CustomLog "logs/ball.meins.dnsalias.com-access_log" common  
</VirtualHost>
Bei dir ist der "ServerName" immer der selbe, dabei ist das doch der Name des "virtuellen Servers" den du anlegen möchtest. Über "ServerAlias" kannst du ihm auch unter einer weitern Adresse aufrufbar machen (s. meinen httpd-vhost.conf VirtualHost 1 und 3) bei dem drittem möchte ich anmerken, das ich diesen local verwende.
Einfach weil ich nicht immer lust habe die volle Adresse einzutippen. (Wird in der host-Datei ebenfalls auf die entsprechende IP umgeleitet)
192.168.40.200    meins.dnsalias.com
192.168.40.200    www.meins.dnsalias.com
192.168.40.200    garten.meins.dnsalias.com
192.168.40.200    ball.meins.dnsalias.com
192.168.40.200    ball
Ich nehme mal an das du weisst, das die Angabe des "DocumentRoot" absolute ist. (Sorry, kann mich nicht entscheiden weil du ja auch den umstand bei dem derzeitigem Aufruf hast !? :confusedface-smile

Gruß Arano
0815-4711
0815-4711 14.10.2008 um 15:46:57 Uhr
Goto Top
Bei dir ist der "ServerName" immer der selbe, dabei ist das doch der Name des "virtuellen Servers" den du anlegen möchtest.

Achso, ich deppl... face-smile Werds gleich mal versuchen...

Ich nehme mal an das du weisst, das die Angabe des "DocumentRoot" absolute ist.

Ja das weiss ich. Die "langen" absoluten langen Pfade sind ind der httpd.conf definiert. Das sind jetzt nur die absoluten Unterverzeichnisse vor dort ausgehend.
0815-4711
0815-4711 14.10.2008 um 16:02:09 Uhr
Goto Top
Sorry, kann mich nicht entscheiden weil du ja auch den umstand bei dem derzeitigem Aufruf hast !? :confused:

Jetzt verstehe ich, was du meinst. Das passt schon so, denn standardmässig gibt auch nur eine "es läuft"-Meldung. Erst wenn ich (derzeit) die entsprechenden Unterverzeichnisse (/abc bzw. /xyz) eingebe, dann gelande ich zum richtigen content
0815-4711
0815-4711 14.10.2008 um 16:29:04 Uhr
Goto Top
Zitat von @Arano:
> Bei dir ist der "ServerName" immer der selbe, dabei
ist das doch der Name des "virtuellen Servers" den du
anlegen möchtest.

Also ich hab jetzt die Einstellungen analog den Deinigen übernommen:
<VirtualHost *:80>
	Servername abc.nameofdomain.local
	ServerAdmin mymail@nameofdomain.local
	DocumentRoot "LW:/absoluter Pfad/zum/passenden/Verzeichnis/abc"  
	ErrorLog "LW:/absoluter Pfad/zum/passenden/Verzeichnis/abc_error.log"  
	CustomLog "LW:/absoluter Pfad/zum/passenden/Verzeichnis/abc_custom.log"  
</VirtualHost>
Ich krieg' gleich 'nen Föhn! face-sad Es geht immer noch nicht. :schnief:
dog
dog 14.10.2008 um 18:59:25 Uhr
Goto Top
Hallo,

du hast aber in der Apache Konfiguration

NameVirtualHost *:80

stehen (vor dem erstem <VirtualHost>-Eintrag)?

Außerdem gilt bei Apache die Regel, wenn Virtual Hosts mit diesem Schema eingestellt sind und dann eine Domain nicht bekannt ist wird automatisch der erste <VirtualHost>-Eintrag benutzt.

Um den Fehler einzugrenzen:
Aktivier für jeden VHost eine eigene Fehler-Log-Datei. Dann siehst du welcher VHost die Seite bekommt.
0815-4711
0815-4711 15.10.2008 um 10:35:59 Uhr
Goto Top
du hast aber in der Apache Konfiguration

NameVirtualHost *:80

stehen (vor dem erstem <VirtualHost>-Eintrag)?

Nein. Vor dem ersten <VirtualHost *:80> steht nur das "Kommentargedöns".

Um den Fehler einzugrenzen:
Aktivier für jeden VHost eine eigene Fehler-Log-Datei. Dann siehst du welcher VHost die Seite bekommt.
Danke für den Tipp, bin ich nicht drauf gekommen.

Laut Log wird versucht auf C:/www zuzugreifen. Das verstehe ich jetzt gar nicht, denn der Pfad ist absolut und richtig angeben:
DocumentRoot "C:/Programm Ordner/Unter Ordner 1/Unterordner.2/Ordner/Ordner"  
dog
dog 15.10.2008 um 15:33:30 Uhr
Goto Top
Nein. Vor dem ersten <VirtualHost *:80> steht nur das "Kommentargedöns".

Die Zeile

NameVirtualHost *:80

muss vor dem ersten VHost kommen.
0815-4711
0815-4711 17.10.2008 um 11:06:09 Uhr
Goto Top
OK, das habe ich gemacht. Funktioniert aber immer noch nicht, immer mit dem selben Fehler.

Aus einem nicht erklärlichen Grund versucht Apache auf C:/WWW zu suchen.

Ich habe jetzt nochmal die httpd.conf durchgesehen, dort ist aber das DocumentRoot nicht auf C:/WWW defininiert, sondern auf "C:/Programm Ordner/Unter Ordner 1/Unterordner.2/Ordner/Ordner".

Woran könnte es scheitern? Ich verstehe es einfach nicht.

Es funktioniert ja nur nicht, wenn ich die http-vhosts.conf aktiviere, sonst gehts ja.
dog
dog 17.10.2008 um 13:27:42 Uhr
Goto Top
Es funktioniert ja nur nicht, wenn ich die http-vhosts.conf aktiviere, sonst gehts ja.

Weil die VHosts alle normalen Hosts auf dem Server überschreiben.
Es könnte sein, dass du irgendwo einen Vhost mit der Konfiguration C:\WWW hast.
Wenn Vhosts aktiviert sind gilt bei Apache die Regel: Wird für eine Domain kein passender VHost gefunden wird der erste in der Konfiguration benutzt.

Könntest du mal deine komplette httpd.conf (mit allen includes aufgelöst) posten?