Apache2 und VirtualHosts

stenser

stenser

Aktives Mitglied
Thread Starter
Dabei seit
21.10.2003
Beiträge
782
Reaktionspunkte
2
Hallo Leute,

ich versuche einen Apache derart einzurichten, dass ich mehrere VirtualHosts einrichten kann und zugleich weiterhin Zugriff auf DEN apache Doc-Root habe. VirtualHost wurde bisher erfolgreich eingerichtet, jedoch verlor ich daraufhin den Zugriff auf den Doc-Root des Apachen. Nun habe ich den localhost als weiteren VirtualHost angelegt. Will ich diesen im Browser allerdings öffnen kommt ein Forbidden.
Den Fehler konnte ich allerdings schon eingrenzen und er sollte in der vhost-Erweiterung der https.conf liegen. Kommentiere ich diese Erweiterung aus, so fehlen natürlich die vhost, aber der Zugriff auf Doc-Root ist möglich.

Könnt ihr mir helfen und mir einen Hinweis geben wo der Fehler liegen könnte (weshalb das Forbidden erscheint)?

Code:
<Location /server-status>
    SetHandler server-status
    Options Indexes FollowSymLinks MultiViews
    Order Allow,Deny
    Allow from ALL
</Location>

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
    DocumentRoot "/Library/WebServer/Documents"
    ServerName localhost
    ErrorLog "logs/localhost-error_log"
    CustomLog "logs/localhost-access_log" common
    <Directory "/opt/local/apache2/htdocs">
        Options ALL
        AllowOverride ALL
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost 127.0.0.1>
    DocumentRoot "/Volumes/MacHDD/Users/rumpel/Sites/app_db"
    ServerName app-db.dev
    ErrorLog "logs/app-db.dev-error_log"
    CustomLog "logs/app-db.dev-access_log" common
    <Directory "/Volumes/MacHDD/Users/rumpel/Sites/app_db">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>
 
naja, wenn du das über die 127.0.0.1 und keinen hostnamen definierst, dann kann der apache halt nicht unterscheiden welchen er dir liefern soll...
also benutz einen hostnamen und trag den in die /etc/hosts als 127.0.0.1 ein ...
 
Vielen Dank für die schnelle Antwort.

Leider erreiche ich aber app-db.dev korrekt. localhost und app-db.dev sind beide in der hosts-Datei eingetragen.
Lediglich bei localhost kommt forbidden anstatt der Website.
 
Ich habe den Apache jetzt mal clean auf einem weiteren Rechner installiert. Dort zeigt sich ein ähnliches Verhalten.
localhost und app-db.dev sind jetzt erreichbar, aber 127.0.0.1 ist forbidden (Zugriff verweigert).

Ersetze ich hingegen
NameVirtualHost 127.0.0.1 durch NameVirtualHost localhost und die beiden VirtualHost Direktiven durch <VirtualHost localhost> erhalte ich bei 127.0.0.1 und bei localhost ein forbidden. Jedoch funktioniert die app-db.dev weiterhin.

Kann mir das jemand erklären?
 
Und, wo steht das das n VirutalHost Problem ist?!
Die Fehlermeldung ist doch eindeutig. forbidden heißt, du hast keine Rechte für den Zugriff aufs DocumentRoot, oder auf die index.* oder was weiß ich.

Wieso guckst du nicht in die Apache log, anstatt nur auf die 403 Message? Da steht sicherlich mehr drin. Nämlich dass ein Zugriff da war, und es kein VirtualHost Problem ist.

Dir ist schon klar, was das heißt?!:

Code:
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
    DocumentRoot "/Library/WebServer/Documents"
[..]
    <Directory "/opt/local/apache2/htdocs">
[..]
    </Directory>
 
  • Gefällt mir
Reaktionen: stenser
Ein Traum. Vielen Dank. Bin nur an dem forbidden hängen geblieben, weil es ohne vhosts funktioniert hat. Aber die beiden Zeilen hab ich einfach übersehen.

Danke
 
Zurück
Oben Unten