4 Stimmen

Apache vhost löst auf das localhost-Dokumentstammverzeichnis auf

Ich habe apache2.2.22 src von http://httpd.apache.org/download.cgi heruntergeladen und die Installation durchgeführt. Die Installation funktioniert gut. Aber das Problem tritt auf, wenn ich versuche, vhosts hinzuzufügen. Ich habe 2 virtuelle Hosts hinzugefügt 1. localhost 2. someother.localhost Beide zeigen auf unterschiedliche Dokumentenverzeichnisse, aber lösen sich zum Dokumentenstamm des ersten virtuellen Hosts auf.

Hier ist meine vhost-Datei:

NameVirtualHost *:80

    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/webserver/htdocs"
    ServerName localhost
    ErrorLog "logs/localhost-error_log"
    CustomLog "logs/localhost-access_log" common

    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all

    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/home/sourabhn/somepath"
    ServerName someother.localhost
    ErrorLog "logs/someother-localhost-error_log"
    CustomLog "logs/someother-localhost-access_log" common

Ich habe den entsprechenden Eintrag in der hosts-Datei vorgenommen. Ich benutze eine Ubuntu 11.10 Maschine. Bitte geben Sie Ihre wertvollen Vorschläge zurück.

2voto

xtian Punkte 2489

Ich habe sofort einen Unterschied zwischen Ihrer Datei und der zusammengeklaubten Datei aus Internet-Tutorials wie diesem von bobpeers bemerkt. Innerhalb des virtuellen Host-Blocks habe ich den -Block hinzugefügt.

NameVirtualHost *:80

DocumentRoot /var/www/
ServerName xtiansimonslaptop.local

        Allow from all
        Options +Includes +Indexes +FollowSymLinks
        AllowOverride all

Ich arbeite mit Drupal und nur um einen Namen auf das Drupal-Verzeichnis auflösen zu können, wird der Rest erledigt. In der Drupal-Installation habe ich mehrere Projekte, von denen jedes mit seinem eigenen Domainnamen in einer Drupal-Installtion eingerichtet ist. Unten ist das Beispiel einer Drupal-Seite namens hello.local und eine weitere meiner Drupal-Seiten könnte cheese.local sein. Beide zeigen auf dasselbe Verzeichnis.

    DocumentRoot /var/www/php/drupal7
    ServerName hello.local
#   ServerAlias *.hello.local

            Allow from all
            Options +Includes +Indexes +FollowSymLinks
            AllowOverride all

Derzeit funktioniert es bis auf die auskommentierte Zeile ServerAlias. Das bringt noch einen anderen Punkt mit sich, den ich beim Einrichten der vHosts gelernt habe. Die Datei /etc/hosts ist wichtig und muss ordnungsgemäß eingerichtet werden.

In dem Beispiel von bobpeers sehen Sie deren Beispiel für Hosts-Einträge,

ServerName bobpeers.live
ServerName bobpeers.dev

Ich würde erwarten, dass der umgekehrte Name live.bobpeers.local ein deutlicheres Beispiel für einen Servernamen wäre. Und hier liegt das Problem - ich finde Inkonsistenzen in den Beispielen. Einige Beispiele verwenden einfach nicht Schlüsselbegriffe wie .local oder folgen der generischen Signatur sub-domain.domain.com. Wenn man das Beispiel einer Person kopiert, die von der Norm abweicht, könnte man denken, dass der oben genannte ServerName auf zwei virtuelle Hosts, live.local und dev.local, verweist. Wer weiß, vielleicht tun sie das sogar!

Noch etwas zu vHosts. Die Manpage zeigt dies,

   127.0.0.1       localhost
   192.168.1.10    foo.mydomain.org       foo
   192.168.1.13    bar.mydomain.org       bar

Was für meinen lokalen Sandkasten funktioniert, ist dies,

   127.0.0.1    localhost
   127.0.0.1    mydomain.local           mydomain
   127.0.0.1    foo.mydomain.local       foo
   127.0.0.1    bar.mydomain.local       bar

Was korrekt zu sein scheint, da die namensbasierte Konfiguration alles sortieren soll und nicht diesen 192.168.1.x-IP-Masken-Unsinn. (^_^)

0voto

131 Punkte 2653

Mein Rat : Deklariere einen "globalen" ServerName und einen globalen DocumentRoot, verwende dann nur die Kernanweisung ServerAlias in deinem Vhost http://httpd.apache.org/docs/2.0/mod/core.html#serveralias.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X