Jürgen Nimis: Virtual Hosts unter Apache (Win98)

Hi Folks,

Bin gerade dabei, auf meinem Apache unter Win98 mehrere Virtual Hosts einzurichten, aber irgendwie klappt's nicht. Habe aber brav im alten Forum gestöbert!

Meine Konfiguration:
Datei "hosts" unter c:\windows:

127.0.0.1       localhost
192.168.0.1 nimis
192.168.0.2 stema
192.168.0.3 fc

Datei "http.conf", Abschnitt für Virtual Hosts:

NameVirtualHost localhost
<VirtualHost localhost>
    ServerAdmin you@your.address
    DocumentRoot "C:\apache\htdocs"
    ServerName localhost
    ErrorLog logs/localhost-error_log
    CustomLog logs/localhost-access_log common
</VirtualHost>

NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
    ServerAdmin you@your.address
    DocumentRoot "C:\apache\htdocs\nimis"
    ServerName nimis
    ErrorLog logs/nimis-error_log
    CustomLog logs/nimis-access_log common
</VirtualHost>

NameVirtualHost 192.168.0.3
<VirtualHost 192.168.0.3>
    ServerAdmin you@your.address
    DocumentRoot "C:\apache\htdocs\fc"
    ServerName fc
    ErrorLog logs/fc-error_log
    CustomLog logs/fc-access_log common
</VirtualHost>

NameVirtualHost 192.168.0.2
<VirtualHost 192.168.0.2>
    ServerAdmin you@your.address
    DocumentRoot "C:\apache\htdocs\stema"
    ServerName stema
    ErrorLog logs/stema-error_log
    CustomLog logs/stema-access_log common
</VirtualHost>

Der Localhost wird bei Aufruf richtig angezeigt, das andere nicht. Apache wurde nach Änderung der Dateien neu gestartet.
Wer kann helfen?

Viele Grüße,
Jürgen

  1. Meine Konfiguration:
    Datei "hosts" unter c:\windows:

    127.0.0.1       localhost
    192.168.0.1 nimis
    192.168.0.2 stema
    192.168.0.3 fc

    Du hast also insgesamt vier Rechner in Deinem Netzwerk (wahrscheinlich nicht, aber ich frag mal Deiner Liste entsprechend:)?

    Datei "http.conf", Abschnitt für Virtual Hosts:

    NameVirtualHost localhost
    <VirtualHost localhost>
        ServerName localhost
    </VirtualHost>

    NameVirtualHost 192.168.0.1
    <VirtualHost 192.168.0.1>
        ServerName nimis
    </VirtualHost>

    NameVirtualHost 192.168.0.3
    <VirtualHost 192.168.0.3>
        ServerName fc
    </VirtualHost>

    NameVirtualHost 192.168.0.2
    <VirtualHost 192.168.0.2>
        ServerName stema
    </VirtualHost>

    Der Localhost wird bei Aufruf richtig angezeigt, das andere nicht. Apache wurde nach Änderung der Dateien neu gestartet.
    Wer kann helfen?

    Die Apache-Anleitung, Kapitel Virtual Hosts, insbesondere "Name-based Virtual Hosts": http://httpd.apache.org/docs/vhosts/name-based.html.

    NameVirtualHost ist dafür gedacht, auf einem Rechner unter _einer_ IP "verschiedene" Server laufen zu lassen. Dazu wird mit _einem_ NameVirtualHost die Adresse des echten Servers angegeben und dann mittels mehrerer <virtualhost>-Blöcke mehrere Server dieser Adresse zugewiesen, jeweils mit einem eigenen Namen unter ServerName.

    Zusätzlich hast Du vielleicht vergessen, Deinem Rechner die ganzen IP-Adressen zuzuweisen. Ein Eintrag in der Hosts-Datei bewirkt noch nicht, daß der Rechner unter diesen Adressen "zuhört". Mit Hilfe dieser Datei werden lediglich Namen in IP-Adressen umgewandelt.

    Deine Hosts-Datei müsste also IMHO ganz einfach so aussehen:

    127.0.0.1    localhost nimis stema fc

    In der Apache-Konfiguration müsste entsprechend folgendes stehen:

    NameVirtualHost 127.0.0.1
      <virtualhost 127.0.0.1>
        ServerName localhost
        [weitere Angaben..]
      </virtualhost>
      <virtualhost 127.0.0.1>
        ServerName nimis
        [weitere Angaben..]
      </virtualhost>
      <virtualhost 127.0.0.1>
        ServerName stema
        [weitere Angaben..]
      </virtualhost>
      <virtualhost 127.0.0.1>
        ServerName fc
        [weitere Angaben..]
      </virtualhost>

    Gruß,
      soenk.e

    1. Deine Hosts-Datei müsste also IMHO ganz einfach so aussehen:

      127.0.0.1    localhost nimis stema fc

      In der Apache-Konfiguration müsste entsprechend folgendes stehen:

      NameVirtualHost 127.0.0.1
        <virtualhost 127.0.0.1>
          ServerName localhost
          [weitere Angaben..]
        </virtualhost>
        <virtualhost 127.0.0.1>
          ServerName nimis
          [weitere Angaben..]
        </virtualhost>
        <virtualhost 127.0.0.1>
          ServerName stema
          [weitere Angaben..]
        </virtualhost>
        <virtualhost 127.0.0.1>
          ServerName fc
          [weitere Angaben..]
        </virtualhost>

      Gruß,
        soenk.e

      Genau das war's.

      Danke,
      Jürgen

      1. hallo ihr beiden,

        ich habe eben ein großes Problem gehabt, ich habe im Selfbrowser(beta) und im IE weder das Ausgangsposting noch Sönkes Antwort richtig lesen können, nur im Netscape 7 habe ich plötzlich Text gesehen, den mir die beiden anderen nicht anzeigen wollten. Zum Nachweis lege ich mal einen Screenshot bei:
        <img src="http://home.arcor.de/schnauss/bilder/screen02.gif" border=0 alt="">

        ich konnte also gar nicht "richtig" auf das posting von nimis eingehen. Und weil Sönke in seiner Antwort wie gewohnt zitiert hat, habe ich auch Sönkes Antwort überhaupt nicht "verstanden".
        Ist das ein "bug" ???

        Aber der Selfbrowser (den ich inzwischen seit einer Woche benutze, und den Thomas nun endlich freigeben sollte) stellt _sämtliche_ anderen aktuellen postings korrekt dar ... (und der IE auch)

        Grüße aus Berlin

        Christoph S.

  2. hallo Jürgen,

    Meine Konfiguration:
    Datei "hosts" unter c:\windows:

    diese Datei hat mit den virtualhosts so gut wie nichts zu tun. Sie ist ein (sehr schwacher) Ersatz für ein DNS, wenn du ein lokales Netzwerk haben solltest. Den Apache interessiert sie im Normalfall nicht, es sei denn, du liest sie irgendwie ein per include-Befehl

    Wie das mit virtualhosts gemacht werden kann, liest du in http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf05.htm#a4 nach.

    Grüße aus Berlin

    Christoph S.

  3. Jetzt kommt das nächste Problem:

    Das Verzeichnis vom "cgi-bin" vom Apache liegt unter "C:\apache\cgi-bin"

    Wenn ich einen Virtual Host "nimis" unter "d:\nimis" mit einem Verzeichnis "d:\nimis\cgi-bin" habe, kann ich dann dem Apache beibringen, dass er neben "C:\apache\cgi-bin" auch "d:\nimis\cgi-bin" akzeptiert? Das muss man doch in der httpd.conf im Bereich ScriptAlias irgendwie eintragen können, oder?

    Grüße,

    Jürgen

    1. hi,

      Wenn ich einen Virtual Host "nimis" unter "d:\nimis" mit einem Verzeichnis "d:\nimis\cgi-bin" habe, kann ich dann dem Apache beibringen, dass er neben "C:\apache\cgi-bin" auch "d:\nimis\cgi-bin" akzeptiert?

      ja, das geht völlig problemlos. Dazu muß für das Verzeichnis "d:\nimis" ein Alias erstellt werden:

      Alias /nimis "D:"
      <Directory "D:/nimis">
          Options Indexes MultiViews
          AllowOverride None
          Order allow,deny
          Allow from all
      </Directory>

      und bei den VirtualHosts muß dann ungefähr sowas stehen:

      <VirtualHost 192.168.0.2>
          DocumentRoot   "D:/nimis"
          ServerName    nimis.opt
          ScriptAlias /cgi-bin/ "D:/nimis/cgi-bin/"
          Options    Indexes +Includes FollowSymLinks All
      </VirtualHost>

      Grüße aus Berlin

      Christoph S.

      1. ups ...

        Alias /nimis "D:"

        muß natürlich

        Alias /nimis "D:/nimis"

        heißen

        ;-)