apache2: Problem mit VirtualHoat

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

ich habe ein Problemmit einem Namebased VirtualHost auf einem Hochschulserver.
Der Server wird nicht von mir administriert, ich kann also bestenfalls nach möglichen Fehlerquellen suchen und diese dem Admin mitteilen.

Es geht um ein Webprojekt, das auf einem Hochschulserver in einem Unterverzeichnis der DocumentRoot liegt. Über das Unterverzeichnis ist das Projekt auch erreichbar.

Zusätzlich habe ich eine Domain angemeldet und der DNS Eintrag zeigt auf die IP des Webservers. Der Admin hat nun einen vhost Eintrag angelegt, der aber offensichtlich nicht funktioniert, denn beim Aufruf der Seite(n) über den eigenen Domainnamen landet man immer auf der Startseite der Hochschule.
Das liegt daran, dass es auf dem Hauptserver RewriteRules gibt, die bei nicht existierenden Dateinamen immer auf die Startseite zeigen. Sieht so aus:
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php

Für mich stellt sich die Frage, woran das unerwartete verhalten liegen kann.
Der Server wurde nach Auskunft des Admin neu gestartet? Was käme noch als Ursache in Frage?

Ich selbst habe auch RewriteRules drin, die aber bei mir zuHause problemlos in einem vhost funktionieren:
Code:
AddDefaultCharset utf-8

# AuthUserFile /www/htdocs/projektname/private/htusers
AuthUserFile /webserver/docs/projekte/projektname/private/htusers
AuthName "Gruppen-Bereich"
AuthType Basic
<Limit GET>
require valid-user
</Limit>

RewriteEngine On
# RewriteRule ([a-z]+).html $1.shtml
RewriteRule ([a-z]+).html index.php
Das sollte sich eigentlich nicht ins Gehege kommen, oder?
 
Zuletzt bearbeitet:
Hast du Zugriff auf die Logfiles? (Shellzugriff sollte zum Lesen reichen, und dann unter /var/log/apache2)

Ist das ServerRoot richtig angegeben?

Stimmt IP und Port?

Ist die IP für die Verwendung als VirtualHost eingetragen? (NameVirtualHost IP:port)

Zeigt das Verzeichnis in der Directory-Direktive auf das gewünschte Verzeichnis?
 
Wenn du auf dem Webserver per host Kommando den Hostnamen abfragst, wird der auch schon richtig aufgelöst und zeigt auf die IP des Servers?
Wenn nicht, sind die DNS noch nicht aktualisiert.
Es kann sein, dass du auf deiner Maschine schon die richtige IP bekommst, der Webserver aber noch alte Zonendaten...
 
Dass das das DNS schon aktualisiert ist, erkannt man daran, dass ja die Seite der Hochschule schon gefunden wird.

Zugriff auf die Logfiles habe ich leider nicht, aber auf die komplette Serverkonfiguration. Da ist mir nichts ungewöhnliches aufgefallen.
In der httpd.conf gibt es eine Zeile:
Code:
Include /etc/apache2/vhosts.d/*.conf
und in /etc/apache2/vhosts.d/ gibt es eine Datei für meine Domain, die auch lesbar ist:
Code:
<VirtualHost *:80>
    ServerName www.mydomain.de
    DocumentRoot /webserver/docs/projekte/projektname/public
    ServerAdmin netadmin@mydomain.de
    ScriptAlias /cgi-bin/  /webserver/docs/projekte/projektname/cgi-bin/
    <Directory /webserver/docs/projekte/projektname/public>
        Allow from all
        AllowOverride Options Indexes Limit FileInfo AuthConfig
    </Directory>
</VirtualHost>

Ich muss gestehen, im Augenblick bin ich etwas ratlos.
 
Zuletzt bearbeitet:
Dass das das DNS schon aktualisiert ist, erkannt man daran, dass ja die Seite der Hochschule schon gefunden wird.

Muss nicht sein.
Die Anfrage kann auf dem Server landen, aber der Server weiss noch nicht, dass er dafür zuständig ist, und zeigt dann je nach Konfiguration eine Default Seite an.

Deshalb ja der Test mit host.
 
Hab ich auch gemacht. Funktioniert. Den DNS Eintrag für die Domain habe ich auch schon Anfang der Woche gemacht.

Zugriffsrechte hab ich eben auch noch einmal geprüft.
Der Webserver kommt auf jeden Fall an die Dateien ran (klar, sonst würde es ja über das Unterverzeichnis auch nicht gehen.

Jetzt geh' ich erstmal in den Wald.
Vielleicht hat ja jemand noch eine Idee, bis ich zurück bin.
 
Lokal muss die Domain nicht aufgelöst werden. Die hat mit dem Hostnamen auch nichts zutun. Die Auswertung im Apache findet komplett ohne irgendwelchen DNS-Voodoo statt.

Laufen auf dem Server noch andere VHosts? Funktionieren die? Kannst du da die Conf einsehen und vergleichen? Wenn du leserechte auf die Conf hast, heist das noch nicht ,dass der Apache das auch darf. Kontrollier mal die Rechte, ob sie auf denen des Apache stehen.
 
Lokal muss die Domain nicht aufgelöst werden. Die hat mit dem Hostnamen auch nichts zutun. Die Auswertung im Apache findet komplett ohne irgendwelchen DNS-Voodoo statt.

In einer Standard Konfiguration nicht, aber woher willst du wissen, wie der Hochschulserver konfiguriert ist? Ich habe solche Fälle schon in der Praxis erlebt.
Hier vermute ich allerdings auch den Haken woanders.

@ maceis
Hast du es schon mit einem name-based virtual host versucht?
Schau mal, ob es in der httpd.conf eine Direktive gibt:
NameVirtualHost hostname-des-servers:80

Dann versuche es mal damit:
<VirtualHost hostname-des-servers:80>
 
Okay, ich glaube ich habe (Dank dem letzten Hinweis) den Fehler gefunden.
Mir ist aufgefallen, dass der Eintrag:
Code:
NameVirtualHost *:80
in der httpd.conf fehlt.
Leider habe ich kein Schreibrecht auf die Serverkonfiguration.
Konnte es also nur dem Admin per Email als Vorschlag mitteilen und muss jetzt erst einmal abwarten.
Ader ich vermute stark, dass es daran liegt.

Danke für Eure Tipps. Ich halte Euch auf dem Laufenden.
 
Hallo,
nur zur Info: Das war's.
 
Nachdem auf dem Server schon jede Menge VirtualHosts laufen, hatte ich das (leichtfertigerweise) vorausgesetzt.
Die machen das aber für jeden VirtualHost separat.
 
Zurück
Oben Unten