MaX: Virtual Hosts sind nicht aufrufbar -HILFE !!!

Guten Abend,

habe folgendes Problem für das ich leider bislang noch keine Erklärung gefunden habe.Aber vieleicht kann mir ja von euch einer einen Tipp geben der zur Lösung meiner Mieserie beiträgt : )

Also, habe auf einem Unix Systhem einen Apache 2.0 http Server laufen und habe versucht zusätzlich zu meiner normalen "Domain" also z.B.: www.xyz.de noch ein paar namensbasierte Virtual Hosts anzulegen, also z.B. : www.0001.xyz.de, www.0002.xyz.de usw. .
Das Verzeichniss ist etc/httpd/httpd.conf, die V-Hosts sehen wie volgt aus :

NameVirtualHost *

<VirtualHost *>
ServerName: www.0001.xyz.de
DocumentRoot: srv/www/htdocs/xyz
usw.
</VirtualHost>

Anstelle von "xyz" habe ich natürlich meine registrierte Domain verwendet !

Mein Problem schildert sich nun wie folgt:

Beim Aufruf der Seite (www.0001.xyz.de) im Browser eines Rechners der mit dem Intern. verbunden ist erhalte ich jedesmal eine 403er Fehlermeldung, die mir sagt, dass entweder kein Index.html Document im entsprechenden Ordner verfügbar ist oder das Verzeichniss zugriffsgeschürtzt ist.

Die Zugriffsrechte habe ich überprüft und die index.html liegt auch im oben angegebenen Verzeichniss !!!

Kann mir bitte jemand helfen und mir sagen wo denn dann der "Apache" begraben liegt. Leider konnte ich auch in sämtlichen Docus. keinen passenden Hinweis finden um mein Problem zu lösen - ihr seid meine letzte Hoffnung.

Solltet ihr noch weitere Hinweise in meiner Beschreibung vermissen werde ich sie natürlich sofort nachposten. Achja, das Unix ist ein Linux 9.0

Vielen Dank im Vorraus für euer Bemühen,

Mfg MaX

  1. guten Morgen,

    Also, habe auf einem Unix Systhem einen Apache 2.0 http Server laufen

    Kannst du das genauer sagen? Bei der Version Apache 2.0.X fehlt hier noch das "X", und so ganz verkehrt wärs auch nicht, wenn man erfahren könnte, was genau du nun für ein System fährst.

    z.B. : www.0001.xyz.de, www.0002.xyz.de usw

    Oh. Kannst du erklären, warum das xxx.xxx.xxx.xxx sein muß (also _vier_ Namensbestandteile?

    NameVirtualHost *

    Nimm doch mal anstelle des * einfach die IP-Adresse deines Rechners  -  falls er außer der loopback-Adresse keine andere hat, verpaßt du ihm eben beispielsweise eine 192.168.0.1 oder ähnlich.

    <VirtualHost *>

    Hier gehört natürlich dann dieselbe IP-Adresse hin.

    ServerName: www.0001.xyz.de

    Nein, so kann dein Server eigentlich nicht heißen. Er heißt wahrscheinlich www.0001.de  -  wobei die TLD "de" nicht unbedingt die glücklichste Wahl sein muß.

    Abhängig davon, welchen Wert das von dir verschwiegene "X" in der Versiosnummer 2.0.X des Apache hat, ist es unter Umständen extrem wichtig, die IP, die deine virtuellen hosts bekommen sollen einschließlich der Servernamen in deiner hosts-Datei einzutragen (sofern du keinen eigenen DNS betreibst und die Eintragung dort vornimmst).

    Grüße aus Berlin

    Christoph S.

    1. Hallo Christoph,

      Kannst du das genauer sagen? Bei der Version Apache 2.0.X fehlt hier noch das "X", und so ganz verkehrt wärs auch nicht, wenn man erfahren könnte, was genau du nun für ein System fährst.

      Konnte die genaue Versionsnummer leider nicht ausfindig machen, es müsste sich allerdings um die aktuellste Version handlen da es Linux 9.0 ja noch nicht all zu lange gibt. Wenn du mir sagen könntest wie ich an die Informationen kommen kan die du benötigst werde ich sie natürlich unverzüglich posten.

      z.B. : www.0001.xyz.de, www.0002.xyz.de usw

      Oh. Kannst du erklären, warum das xxx.xxx.xxx.xxx sein muß (also _vier_ Namensbestandteile?

      Ich werds versuchen. Also, um das www. und das .de komm ich warscheinlich nicht drum rum. Das xyz ist die Domain und das 0001 bzw.0002 etc ist die Subdomain, wodurch ich mir Kosten für die anmeldung mehrerer Domains teilweise einsparen kann und dessweiteren einen besseren Überblick über meine Unterseiten zu bekommen.

      NameVirtualHost *

      Nimm doch mal anstelle des * einfach die IP-Adresse deines Rechners  -  falls er außer der loopback-Adresse keine andere hat, verpaßt du ihm eben beispielsweise eine 192.168.0.1 oder ähnlich.

      <VirtualHost *>

      Hier gehört natürlich dann dieselbe IP-Adresse hin.

      ServerName: www.0001.xyz.de

      Nein, so kann dein Server eigentlich nicht heißen. Er heißt wahrscheinlich www.0001.de  -  wobei die TLD "de" nicht unbedingt die glücklichste Wahl sein muß.

      Der Rechner müsste www.xyz.de heissen, oder teusch ich mich?

      Abhängig davon, welchen Wert das von dir verschwiegene "X" in der Versiosnummer 2.0.X des Apache hat, ist es unter Umständen extrem wichtig, die IP, die deine virtuellen hosts bekommen sollen einschließlich der Servernamen in deiner hosts-Datei einzutragen (sofern du keinen eigenen DNS betreibst und die Eintragung dort vornimmst).

      Das mit den Namenbasierenden V-Host müsste eigentlich so funktionieren, wenn ich dem Linux Handbuch glauben darf. Die Option mit den IP-basierenden V-Hosts die du mir vorgeschlagen hast wäre natürlich auszuprobieren, da ich allerdings relativ viele und immerwieder neue Subs anlegen möchte wäre mir die * Lösung lieber, da dadurch der Eintrag der IP und domains in das "hosts" Verzeichnis entfallen könnte.

      Sollte ich mich irren bitte ich dich mich zu korrigieren.

      Vielen Dank für deine ausführliche Antwort,
      mfg MaX

      1. morgens,

        Konnte die genaue Versionsnummer leider nicht ausfindig machen

        du gibst auf der Konsole, wie bei vielen anderen Programmen, ein: "httpd -v", dann solltest du ungefähr so etwas erhalten:
        Server version: Apache/2.0.48
        Server built:   Oct 29 2003 09:37:51

        es müsste sich allerdings um die aktuellste Version handlen

        Die aktuellste ist tatsächlich (noch) 2.0.48, aber es gibt viele Gründe, weshalb manche auf ihren UNIX- oder LINUX-Systemen lieber eine 1.3.X fahren möchten.

        da es Linux 9.0 ja noch nicht all zu lange gibt.

        "Linux 9.0" gibt es überhaupt nicht. Wenn man das System "LINUX" überhaupt mit einer Versionsnummer versieht, bezieht die sich auf den Kernel. Der aktuelle Kernel steht bei 2.6.
        Allerdings gibt es von RedHat und von der SuSE jeweils Versionen mit der Nummer 9.0.

        Also, um das www. und das .de komm ich warscheinlich nicht drum rum.

        "www" ist in der Regel nichts andres als ein Platzhalter. Den kannst du meistens getrost weglassen. Einen virtuellen host kannst du sogar "Rechner0001" nennen, ganz ohne "www" und "de" und Pünktchen dazwischen ... ;-) Schön sieht das zwar nicht aus, aber im lokalen Netz funktioniert das prima.
        Eine TLD "de" macht nur dann Sinn, wenn dein Rechner Domains betreuen soll, die es ganz real auch im Internet gibt und die auch "von außen" erreicht werden sollen. Das bedeutet, daß du entweder eine feste IP hast oder dich mit Schummeleien über dyndns durchmogelst. Für Testzwecke im lokalen Netz gibt es die extra reservierten TLDs "test" und "local".

        Das xyz ist die Domain und das 0001 bzw.0002 etc ist die Subdomain, wodurch ich mir Kosten für die anmeldung mehrerer Domains teilweise einsparen kann und dessweiteren einen besseren Überblick über meine Unterseiten zu bekommen.

        "Subdomains" sind eigentlich nicht für "Unterseiten" da, sondern für eigenständige Webprojekte, die voneinander vollkommen unabhängig sein _können_ (aber nicht müssen).

        Der Rechner müsste www.xyz.de heissen, oder teusch ich mich?

        Der Rechner kann heißen wie er will bzw. wie du willst. Dein virtueller host kann einen absolut abweichenden Namen haben, das ist wurscht. Wichtig ist, daß dein Rechner irgendwoher (zum Beispiel aus der hosts-Datei) weiß, wie er den Namen "auflösen", also an welche IP er ihn vermitteln soll.

        Das mit den Namenbasierenden V-Host müsste eigentlich so funktionieren, wenn ich dem Linux Handbuch glauben darf.

        Vorhin hattest du von UNIX gesprochen, jetzt sprichst du von LINUX. Das muß nicht dasselbe sein. Und ich habe selbstverständlich keine Ahnung, was für ein Handbuch du meinst (davon gibts Hunderte).

        Die Option mit den IP-basierenden V-Hosts die du mir vorgeschlagen hast wäre natürlich auszuprobieren, da ich allerdings relativ viele und immerwieder neue Subs anlegen möchte wäre mir die * Lösung lieber, da dadurch der Eintrag der IP und domains in das "hosts" Verzeichnis entfallen könnte.

        Das ist meines Erachtens falsch gedacht. Du kannst mit deiner IP so viele virtuelle hosts mit völlig unterschiedlichen Namen und TLDs anlegen wie du möchtest  -  allerdings wird das mit Subdomains unter Umständen schwieriger.

        Thomas hat dich bereits auf die Apache-Dokumentation zu den virtuellen hosts verwiesen, die müßtest du sogar, je nach Browser-Einstellung, in deutscher Sprache zu lesen bekommen. Schau sie dir nochmal gründlich an.

        Grüße aus Berlin

        Christoph S.

        1. Moin!

          Also, um das www. und das .de komm ich warscheinlich nicht drum rum.

          "www" ist in der Regel nichts andres als ein Platzhalter. Den kannst du meistens getrost weglassen.

          Nein. Auch wenn "www" vor dem Namen suggeriert, dass man damit definiert, gerne HTML-Seiten haben zu wollen, so ist es doch unverzichtbarer Bestandteil des Hostnamens, den man keinesfalls einfach weglassen kann. Entscheidend für den "Aufruf von HTML-Seiten" ist das "http:" am Anfang der URL.

          Natürlich kann man _konfigurieren_, dass "www.example.com" und "example.com" denselben Server meint, und dass dort dieselben Seiten ausgeliefert werden. Das hat aber nichts mit "kann man weglassen" zu tun im Sinne von "ist unwichtig, hat keine Bedeutung, ist irrelevant", sondern mit "ist absichtlich so gemacht worden, weil Leute ja faul sind". Es gibt genug Domains, wo man es nicht einfach weglassen kann, und genausoviele andere Domains, wo man es nicht einfach hinzufügen darf.

          Einen virtuellen host kannst du sogar "Rechner0001" nennen, ganz ohne "www" und "de" und Pünktchen dazwischen ... ;-) Schön sieht das zwar nicht aus, aber im lokalen Netz funktioniert das prima.

          Es scheint mir hier tatsächlich nicht um ein lokales Netz zu gehen.

          Eine TLD "de" macht nur dann Sinn, wenn dein Rechner Domains betreuen soll, die es ganz real auch im Internet gibt und die auch "von außen" erreicht werden sollen. Das bedeutet, daß du entweder eine feste IP hast oder dich mit Schummeleien über dyndns durchmogelst.

          Dyndns hat zwar einige nette Domains im Angebot, unter "dyndns.de" gibts allerdings kein Wegangebot. Außerdem kriegt man da ja keine Second-Level-Domains.

          Die Option mit den IP-basierenden V-Hosts die du mir vorgeschlagen hast wäre natürlich auszuprobieren, da ich allerdings relativ viele und immerwieder neue Subs anlegen möchte wäre mir die * Lösung lieber, da dadurch der Eintrag der IP und domains in das "hosts" Verzeichnis entfallen könnte.

          Das ist meines Erachtens falsch gedacht. Du kannst mit deiner IP so viele virtuelle hosts mit völlig unterschiedlichen Namen und TLDs anlegen wie du möchtest  -  allerdings wird das mit Subdomains unter Umständen schwieriger.

          Subdomains sind genauso einfach zu konfigurieren, wie alle anderen virtuellen Hosts auch. Denn es gibt keinen technischen Unterschied, ausgehend vom String "ServerName www.xyz.de" hin zu "ServerName www.abc.de" (andere Domain) oder aber "ServerName subdomain.xyz.de" (Subdomain).

          - Sven Rautenberg

          --
          "Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)
        2. Abend,

          Es hadelt sich um die Server version: Apache/1.3.28 (Linux/SuSE)
          Server built:   Sep 23 2003 18:30:22

          Eine TLD "de" macht nur dann Sinn, wenn dein Rechner Domains betreuen soll, die es ganz real auch im Internet gibt und die auch "von außen" erreicht werden sollen.

          Das bedeutet, daß du entweder eine feste IP hast oder dich mit Schummeleien über dyndns durchmogelst. Für Testzwecke im lokalen Netz gibt es die extra reservierten TLDs "test" und "local".

          Genau so ein Server solls auch werden. Die Domain ist bereits registriert und der NameServer kennt meine feste IP auch schon und leitet Anfragen dorthin weiter.

          Der Rechner kann heißen wie er will bzw. wie du willst. Dein virtueller host kann einen absolut abweichenden Namen haben, das ist wurscht. Wichtig ist, daß dein Rechner irgendwoher (zum Beispiel aus der hosts-Datei) weiß, wie er den Namen "auflösen", also an welche IP er ihn vermitteln soll.

          Das mit den Namenbasierenden V-Host müsste eigentlich so funktionieren, wenn ich dem Linux Handbuch glauben darf.

          Vorhin hattest du von UNIX gesprochen, jetzt sprichst du von LINUX. Das muß nicht dasselbe sein. Und ich habe selbstverständlich keine Ahnung, was für ein Handbuch du meinst (davon gibts Hunderte).

          Die Distribution die ich benutze ist SusE Linux 9.0 pro, mit dem entsprechenden Handbuch.

          Die Option mit den IP-basierenden V-Hosts die du mir vorgeschlagen hast wäre natürlich auszuprobieren, da ich allerdings relativ viele und immerwieder neue Subs anlegen möchte wäre mir die * Lösung lieber, da dadurch der Eintrag der IP und domains in das "hosts" Verzeichnis entfallen könnte.

          Das ist meines Erachtens falsch gedacht. Du kannst mit deiner IP so viele virtuelle hosts mit völlig unterschiedlichen Namen und TLDs anlegen wie du möchtest  -  allerdings wird das mit Subdomains unter Umständen schwieriger.

          Das mit den IP-V-Hosts habe ich ausprobiert - die Domain in die Hostsdatei eingetragen und die V-Hosts in die httpd.conf. Leider bekomme ich noch immer die 403er Meldung.

          Thomas hat dich bereits auf die Apache-Dokumentation zu den virtuellen hosts verwiesen, die müßtest du sogar, je nach Browser-Einstellung, in deutscher Sprache zu lesen bekommen. Schau sie dir nochmal gründlich an.

          Vielen Dank für den Tipp. Die kenn ich inzwischen schon zur genüge, auch das Aache Buch das ich mir kürzlich gekauft habe bringt mich nicht weiter.
          Ich glaube dass es möglicherweise gar nicht an den V-Hosts liegt, sondern an einer anderen Einstellung.
          Das komische ist auch, dass wenn ich die index.html in einen zusätzlichen Ordner lege, der wiederum im "htdocs" Ordner liegt, also der Pfad zum Ordner wäre dann: srv/www/htdocs/0001 wird mir die 403er angezeigt. - Den Pfad in dem V-Host habe ich dann natürlich dementsprechend korrigiert.
          Wenn die Seite allerdings direkt im "htdocs" Ordner liegt, bekomme ich keine Fehlermeldung.
          Also entweder ich lege alle meine Seiten direkt ins "htdocs" und bekomme ein heiloses Durcheinander, oder ich sortiere sie in verschiedene Ordner und bekomme weiter die 403er !!!

          Naja, vieleicht hat ja von euch wer ne Ahnung an was das liegen könnte.

          1. hallo MaX,

            Es hadelt sich um die Server version: Apache/1.3.28 (Linux/SuSE)
            Server built:   Sep 23 2003 18:30:22

            Aha. Das ist zwar nicht die "aktuellste" Apache-Version, macht aber nix (wenn du einmal YOU fährst, bekommst du mehrere Sicherheitsupdates angeboten, die du dir auch direkt von http://www.suse.de/de/private/download/updates/90_i386.html ziehen könntest).

            In diesem Fall ist der link zur Apache-Doku, den dir Thomas gepostet hatte, nicht ganz zutreffend (obwohl es nur marginale Unterschiede gibt). Richtiger ist für dich dann http://httpd.apache.org/docs/vhosts/index.html  -  aber, wie gesagt, inhaltlich gibt es für dich nahezu keine Unterschiede bei beiden Quellen.

            Eine TLD "de" macht nur dann Sinn, wenn dein Rechner Domains betreuen soll, die es ganz real auch im Internet gibt
            Genau so ein Server solls auch werden. Die Domain ist bereits registriert und der NameServer kennt meine feste IP auch schon und leitet Anfragen dorthin weiter.

            Gut zu wissen. Dann ist selbstverständlich die TLD "de" vollauf gerechtfertigt.

            Die Distribution die ich benutze ist SusE Linux 9.0 pro, mit dem entsprechenden Handbuch.

            Ok, das hab ich auch, Handbuch allerdings nur elektronisch unter /usr/share/doc

            Das mit den IP-V-Hosts habe ich ausprobiert - die Domain in die Hostsdatei eingetragen und die V-Hosts in die httpd.conf. Leider bekomme ich noch immer die 403er Meldung.

            Wenn es bereits einen "offiziellen" Eintrag deiner Domains bei einem "offiziellen" DNS gibt, ist die hosts-Datei nur noch eine bescheidene Stütze und nicht mehr _ganz so_ wichtig. Es könnte, wenn die Zuordnungen nicht übereinstimmen, sogar zu erheblichen Konflikten kommen. Wichtig ist allerdings deine httpd.conf. Du nimmst dann eben anstelle einer 192.168.0.x deine feste IP für die vorgesehenen virtuellen hosts. Das geht normalerweise ziemlich problemlos.

            Ich glaube dass es möglicherweise gar nicht an den V-Hosts liegt, sondern an einer anderen Einstellung.

            Möglich. Dazu hat dir MudGuard einen Hinweis gegeben. Du mußt dafür sorgen, daß mit "DirectoryIndex" natürlich auch die "übliche Schreibform" deiner Indexdatei angesprochen werden kann.

            Das komische ist auch, dass wenn ich die index.html in einen zusätzlichen Ordner lege, der wiederum im "htdocs" Ordner liegt, also der Pfad zum Ordner wäre dann: srv/www/htdocs/0001 wird mir die 403er angezeigt.

            Klar, weil deine httpd.conf dann dieses DocumentRoot wahrscheinlich nicht kennt.

            Wenn die Seite allerdings direkt im "htdocs" Ordner liegt, bekomme ich keine Fehlermeldung.

            Schau dir nochmal genau an, was du als DocumentRoot angeben mußt.

            Ich bin übrigens skeptisch, was die von der SuSE gewissermaßen "vorgefertigten" Pfade und Verzeichnisse angeht. Wenn du sehr viele Inhalte und eventuell dynamische Zugriffe von anderen usern übers Internet auf /srv/www hast, ist es sinnvoll, das ganze Verzeichnis auszugliedern und auf eine eigene größere Partition zu legen.

            Die SuSE geht seit jeher sehr eigenwillige Wege, was die Einrichtung des Apache angeht  -  sofern man das mit YAST macht. Zum Verständnis deiner httpd.conf kann dir http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf062.htm immer noch weiterhelfen, es gibt nur minimale Unterschiede zu dem, was du hast.

            Grüße aus Berlin

            Christoph S.

  2. Hallo,

    Also, habe auf einem Unix Systhem einen Apache 2.0 http Server laufen und habe versucht zusätzlich zu meiner normalen "Domain" also z.B.: www.xyz.de noch ein paar namensbasierte Virtual Hosts anzulegen, also z.B. : www.0001.xyz.de, www.0002.xyz.de usw. .

    Hast du dir schon http://httpd.apache.org/docs-2.0/vhosts/name-based.html durchgelesen?

    Hast du auch für deine "Stamm" Domain einen VirtualHost eingerichtet?

    Grüße
    Thomas

    1. Hallo Thomas,

      Hast du auch für deine "Stamm" Domain einen VirtualHost eingerichtet?

      Ja, das habe ich. Der V-Host sieht genauso aus wie der für die Subs. nur halt eben ohne Subdomain davor.

      NameVirtualHost *
      ServerName  www.xyz.de
      DocumentRoot ... usw.

      Vielen Dank für deine Antwort,
      mfg MaX

  3. Hi,

    Beim Aufruf der Seite (www.0001.xyz.de) im Browser eines Rechners der mit dem Intern. verbunden ist erhalte ich jedesmal eine 403er Fehlermeldung, die mir sagt, dass entweder kein Index.html Document im entsprechenden Ordner verfügbar ist oder das Verzeichniss zugriffsgeschürtzt ist.
    Die Zugriffsrechte habe ich überprüft und die index.html liegt auch im oben angegebenen Verzeichniss !!!

    index.html oder Index.html?

    Was genau steht im access.log und im error.log für so einen Zugriff?
    (da steht normalerweise auch der genaue Pfad der Datei drin, auf die zugegriffen wird - vielleicht hilft das ja weiter)

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/