Zeromancer: Virtuelle Hosts unter WinXP Prof. mit Apache 2.2.4

Hallo,

vielleicht kann mir jemand mit praktischen Tipps weiterhelfen. Ich habe Apache  2.2.4 auf einem Windows XP Prof-System installiert.

httpd.conf:
***********

---------------------------

This should be changed to whatever you set DocumentRoot to.

<Directory "K:/WWW">

---------------------------

If your host doesn't have a registered DNS name, enter its IP address here.

ServerName 127.0.0.1

---------------------------

DocumentRoot: The directory out of which you will serve your

documents. By default, all requests are taken from this directory, but

symbolic links and aliases may be used to point to other locations.

DocumentRoot "K:/WWW"

---------------------------

Apache wurde gemäß den Standardvorschlägen unter C:\Programme\Apache Software Foundation installiert und läuft auch.

Beim Aufruf von http://localhost erscheint eine "Index of/"-Seite, welche mir die zwei unter "K:/WWW" angelegten Verzeichnisse als Hyperlink anbietet.

Die Hosts-Datei enthält folgenden Eintrag:

-------------------------------------

#      102.54.94.97     rhino.acme.com          # Quellserver
#       38.25.63.10     x.acme.com              # x-Clienthost

127.0.0.1       localhost
127.0.0.1       www.bbl-online.test

-------------------------------------

Die Datei httpd-vhosts.conf besteht aus:

-------------------------------------------

Use name-based virtual hosting.

NameVirtualHost 127.0.0.1

VirtualHost example:

Almost any Apache directive may go into a VirtualHost container.

The first VirtualHost section is used for all requests that do not

match a ServerName or ServerAlias in any <VirtualHost> block.

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.Speedport_W_500
    DocumentRoot /www/docs/dummy-host.Speedport_W_500
    ServerName dummy-host.Speedport_W_500
    ServerAlias www.dummy-host.Speedport_W_500
    ErrorLog logs/dummy-host.Speedport_W_500-error_log
    CustomLog logs/dummy-host.Speedport_W_500-access_log common
</VirtualHost>

<VirtualHost 127.0.0.1>
    DocumentRoot "K:/WWW"
    ServerName www.bbl-online.test
</VirtualHost>

------------------------------------------------------

Ich bekomme bei http://localhost und http://www.bbl-online.test jeweils nur die "Index of/"-Seite zu sehen.

Könnte mir bitte jemand sagen, wo ich noch Nachträge/Zusatzangaben einfügen muss?!

Danke schon mal.

Mit freundlichen Grüßen,
André

--
  1. Was willst du denn für virtuelle Hosts einrichten? Namens- oder IP-basierte? Das kann ich aus deiner Konfiguration nicht erkennen. Und deshalb kann es der Apache auch nicht.

    Lies doch mal http://httpd.apache.org/docs/2.2/vhosts/

    1. hallo,

      Was willst du denn für virtuelle Hosts einrichten? Namens- oder IP-basierte? Das kann ich aus deiner Konfiguration nicht erkennen.

      Dann mußt du dir das genauer anschauen. Wenn dasteht
        NameVirtualHost 127.0.0.1
      Wird wohl ein namensbasierter virthost gemeint sein.

      Und deshalb kann es der Apache auch nicht.

      Doch, das kann er sehr wohl, und tut es im vorgestellten Beispiel ja auch.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Dann mußt du dir das genauer anschauen. Wenn dasteht
          NameVirtualHost 127.0.0.1

        Oh, sorry! Habe ich übersehen.

        Doch, das kann er sehr wohl, und tut es im vorgestellten Beispiel ja auch.

        Dann frag ich noch mal: Wo ist dein Problem?

        1. hallo,

          Dann frag ich noch mal: Wo ist dein Problem?

          Frag bitte Andre. Ich habe kein Problem mit meinem Apache.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. hallo,

    Könnte mir bitte jemand sagen, wo ich noch Nachträge/Zusatzangaben einfügen muss?

    Nirgends. Auch nach deiner Beschreibung ist alles richtig, du siehst das Directory-listing. Wenn du das nicht zu sehen bekommen willst, mußt du lediglich ein "Standarddokument" in dein DocumentRoot legen, also beispielsweise eine "index.htm".

    Allerdings würde ich den ersten virtuellen Host streichen. Dieser "dummy_host" irritiert nur, falls du mal eine Adresse aufrufst, die du in der hosts-Datei nicht eingetragen hast.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  3. Hallo,

    This should be changed to whatever you set DocumentRoot to.

    <Directory "K:/WWW">

    Mein Verständnis: Alle Projekte kommen in dieses Verzeichnis, jeweils in Unterordner

    K:/WWW
      - /Projekt1 (K:/WWW/Projekt1)
      - /Projekt2 (K:/WWW/Projket2)

    If your host doesn't have a registered DNS name, enter its IP address here.

    ServerName 127.0.0.1

    Mangels anderweitigem Wissen habe ich hier die local host-IP eingetragen

    DocumentRoot: The directory out of which you will serve your

    documents. By default, all requests are taken from this directory, but

    symbolic links and aliases may be used to point to other locations.

    DocumentRoot "K:/WWW"

    Auch hier die Angabe analog zu Punkt 1, alle Projekte liegen in Unterordner auf "K:/WWW"

    Apache wurde gemäß den Standardvorschlägen unter C:\Programme\Apache Software Foundation installiert und läuft auch.
    Beim Aufruf von http://localhost erscheint eine "Index of/"-Seite, welche mir die zwei unter "K:/WWW" angelegten Verzeichnisse als Hyperlink anbietet.

    Okay, das leuchtet mir noch ein.

    Die Hosts-Datei enthält folgenden Eintrag:


    #      102.54.94.97     rhino.acme.com          # Quellserver
    #       38.25.63.10     x.acme.com              # x-Clienthost

    127.0.0.1       localhost
    127.0.0.1       www.bbl-online.test

    Mein Verständnis: Ich lasse lokal (127.0.0.1) einen namensbasierten virtuellen host zu. Wenn ich also www.bbl-online.test im Browser aufrufe, wird lokal nach dem Verzeichnis gesucht, das in den virtuellen host-containern angegeben ist.

    <VirtualHost 127.0.0.1>
        DocumentRoot "K:/WWW"
        ServerName www.bbl-online.test
    </VirtualHost>

    Mein Verständis: Wenn ich die Angabe "Document Root K:/WWW" um den Ordner des Projektes erweitere (DocumentRoot "K:/WWW/BBL2007") sollte die index-Seite geladen werden, die unter K:/WWW/BBL2007 liegt?!

    Dies ist aber leider nicht so. Ich muss also was übersehen haben. Ich bekomme weiterhin die Index-Datei zu sehen, die unter K:/WWW liegt, nicht die Index-Datei aus K:/WWW/BBL2007

    Mit freundlichen Grüßen,
    André

    --
    1. Hallo,

      so schauts jetzt aus. Apache gestoppt, gestartet, vorher alles gespeichert, Browser schließen, Cache leeren, www.bbl-online.test aufrufen - K:/WWW/index.shtml wird aufgerufen, nicht K:/WWW/BBL2007/index.shtml

      ------------------------------------------

      Use name-based virtual hosting.

      NameVirtualHost 127.0.0.1

      VirtualHost example:

      Almost any Apache directive may go into a VirtualHost container.

      The first VirtualHost section is used for all requests that do not

      match a ServerName or ServerAlias in any <VirtualHost> block.

      <VirtualHost 127.0.0.1>
          DocumentRoot "K:/WWW/BBL2007"
          ServerName www.bbl-online.test
      </VirtualHost>

      -----------------------------------------------

      Mit freundlichen Grüßen,
      André

      --
      1. Hallo,

        so schauts jetzt aus. Apache gestoppt, gestartet, vorher alles gespeichert, Browser schließen, Cache leeren, www.bbl-online.test aufrufen - K:/WWW/index.shtml wird aufgerufen, nicht K:/WWW/BBL2007/index.shtml


        Use name-based virtual hosting.

        NameVirtualHost 127.0.0.1

        VirtualHost example:

        Almost any Apache directive may go into a VirtualHost container.

        The first VirtualHost section is used for all requests that do not

        match a ServerName or ServerAlias in any <VirtualHost> block.

        <VirtualHost 127.0.0.1>
            DocumentRoot "K:/WWW/BBL2007"
            ServerName www.bbl-online.test
        </VirtualHost>


        Schau mal in der httpd.conf nach, welche httpd-vhosts.conf dort wirklich per Include eingebungen wird. Ist das überhaupt die, welche Du bearbeitest?

        Ansonsten ist das jetzt für einen vhost, der nur lokal erreicht werden soll, schon korrekt so. Mehrere wären dann bei NameVirtualHost jeweils anhand der ServerName zu unterscheiden:

        <VirtualHost 127.0.0.1>
             DocumentRoot "K:/WWW"
             ServerName localhost
        </VirtualHost>
        <VirtualHost 127.0.0.1>
             DocumentRoot "K:/WWW/BBL2007"
             ServerName www.bbl-online.test
        </VirtualHost>
        <VirtualHost 127.0.0.1>
             DocumentRoot "K:/WWW/Projekt01"
             ServerName projekt1.test
        </VirtualHost>
        <VirtualHost 127.0.0.1>
             DocumentRoot "K:/WWW/Projekt02"
             ServerName projekt2.test
        </VirtualHost>

        viele Grüße

        Axel

        1. hallo Axel,

          Schau mal in der httpd.conf nach, welche httpd-vhosts.conf dort wirklich per Include eingebungen wird. Ist das überhaupt die, welche Du bearbeitest?

          Wenn er diese httpd.conf nicht zusätzlich bearbeitet hat, ist der Include-Befehl zwar korrekt formuliert und weist suf die richtige httpd-vhosts.conf (im "default"-Unterverzeichnis), aber er ist standardmäßig auskommentiert.

          Ansonsten ist das jetzt für einen vhost, der nur lokal erreicht werden soll, schon korrekt so.

          Mit einer Einschränkung: wenn in der httpd.conf selbst als Servername nur die Loopback-Adresse angegeben wurde und zugleich noch _außerhalb_ von virthost-Containern eine Festlegung für die DocumentRoot existiert, passiert genau das, was Andre beschreibt.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Hallo Christoph,

            Wenn er diese httpd.conf nicht zusätzlich bearbeitet hat, ist der Include-Befehl zwar korrekt formuliert und weist suf die richtige httpd-vhosts.conf (im "default"-Unterverzeichnis), aber er ist standardmäßig auskommentiert.

            daran lag es wohl. ;-) Vielen Dank für deine Hilfe.

            Mit freundlichen Grüßen,
            André

            --
        2. Hallo Axel,

          Schau mal in der httpd.conf nach, welche httpd-vhosts.conf dort wirklich per Include eingebungen wird. Ist das überhaupt die, welche Du bearbeitest?

          du bist gerade mein persönlicher "Held des Tages". ;-) Die Zeile

          Include conf/extra/httpd-vhosts.conf

          war auskommentiert!

          Jetzt läufts:

          http://localhost

          liefert K:/WWW/index.shtml

          http://www.bbl-online.test

          liefert K:/WWW/BBL2007/index.shtml

          Riesen Dank!

          Mit freundlichen Grüßen,
          André

          --
    2. Mein Verständis: Wenn ich die Angabe "Document Root K:/WWW" um den Ordner des Projektes erweitere (DocumentRoot "K:/WWW/BBL2007") sollte die index-Seite geladen werden, die unter K:/WWW/BBL2007 liegt?!

      Dies ist aber leider nicht so. Ich muss also was übersehen haben. Ich bekomme weiterhin die Index-Datei zu sehen, die unter K:/WWW liegt, nicht die Index-Datei aus K:/WWW/BBL2007

      Nachfrage: Willst du im Browser http://www.bbl-online.test/ eintippen und die Seite unter K:/WWW/BBL2007 sehen, oder willst du http://www.bbl-online.test/BBL2007/ eintippen, um die Seite zu sehen?

      1. Hallo Blauvogel,

        Nachfrage: Willst du im Browser http://www.bbl-online.test/ eintippen und die Seite unter K:/WWW/BBL2007 sehen, oder willst du http://www.bbl-online.test/BBL2007/ eintippen, um die Seite zu sehen?

        ich habe drei Projekte, die später über

        www.bbl-online.test die index-Seite aus K:/WWW/BBL2007
        www.projekt2.test die index-Seite aus K:/WWW/Projekt2
        www.projekt3.test die index-Seite aus K:/WWW/Projekt3

        aufrufen sollen.

        Ich brauche dies, da ich die Navi, die Stylesheets, Bilder etc. später per "/style/sreen.css" oder auch "/navi/navi-links.txt" bzw. "/images/2007/bild1.jpg" einbinden möchte.

        Mit freundlichen Grüßen,
        André

        --
        1. hallo,

          Ich brauche dies, da ich die Navi, die Stylesheets, Bilder etc. später per "/style/sreen.css" oder auch "/navi/navi-links.txt" bzw. "/images/2007/bild1.jpg" einbinden möchte.

          Zwar kannst du dir natürlich beliebig viele virtuelle Hosts erstellen, aber die Begründung, weshalb du sie einrichten möchtest, ist nicht einleuchtend.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Hallo Christoph,

            Zwar kannst du dir natürlich beliebig viele virtuelle Hosts erstellen, aber die Begründung, weshalb du sie einrichten möchtest, ist nicht einleuchtend.

            nun, ich möchte einfach unter "simulierten" Live-Bedingungen testen. Bin die letzte Zeit gut damit gefahren.

            Mit freundlichen Grüßen,
            André

            --
            1. hallo,

              nun, ich möchte einfach unter "simulierten" Live-Bedingungen testen. Bin die letzte Zeit gut damit gefahren.

              Das ist ja ein durchaus guter Vorsatz, aber dafür brauchst du nicht mehrere unterschiedliche virtuelle Hosts. Wenn du mit /style/sreen.css eine externe CSS einbindest, muß die ja auf demselben Server (also hier: virtuellen Host) liegen. Anders sieht es erst aus, wenn du stattdessen http://projekt1/style/screen.css probieren möchtest.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
    3. hallo,

      ServerName 127.0.0.1
      Mangels anderweitigem Wissen habe ich hier die local host-IP eingetragen

      Das ist möglich, wenn auch nicht sehr gechickt.

      DocumentRoot "K:/WWW"

      Damit gibst du "zentral" für diesen Servernamen, also in deinem Fall für die Loopbackadresse, die DocumentRoot vor.

      127.0.0.1       localhost
      127.0.0.1       www.bbl-online.test

      Wenn ich die Angabe "Document Root K:/WWW" um den Ordner des Projektes erweitere (DocumentRoot "K:/WWW/BBL2007") sollte die index-Seite geladen werden, die unter K:/WWW/BBL2007 liegt?

      Ja, sollte.

      Dies ist aber leider nicht so.

      Vermutlich, weil du zweimal DocumentRoot definiert hast - dann wird eben der erste Eintrag (und nicht der aus dem virthost-Container) genommen. Und laut hosts-Datei ist der erste Eintrag, der deiner 127.0.0.1 einen Namen zuordnet, localhost.

      Abhilfen:
      1. Gib einen Servernamen vor - wenn dir nichts anderes einfällt, nennst du ihn eben "localhost"
      oder
      2. Laß "DocumentRoot" weg und definiere dafür im Abschnitt über virtuelle Hosts zwei virthost-Container: den, den du bereits hast, und einen zweiten für "localhost". Ordne beiden die unterschiedlichen Verzeichnisse für die DocumentRoot zu.

      Im übrigen bist du genau über die Stelle gestolpert, die deutlich macht, weshalb man versuchen sollte, wann immer möglich _nicht_ die Loopback-Adresse für virtuelle Hosts zu nehmen. Das Problem hast du nicht, wenn du deiner Netzwerkkarte eine private IP (z.B. 192.168.1.1) zuweist und diese IP dann eben für deine virtuellen Hosts benutzt.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|