Robman: Apache - NameBased Virtual Host ?

Ahoi !

Ich hätte da eine bescheidene Frage zu den Apache (v1.3.26) Virtual hosts... Wie kann ich in der httpd.conf realisieren, anstatt eines IP V-hosts, z.B. 127.0.0.110 den ich im browser mit http://127.0.0.110 aufrufe, einen NameBased Host, z.B. http://www.robman.de, in einem Browser aufrufen ?
Was muss ich wo ändern... meine *.conf datei sieht folgendermaßen aus:

#NameVirtualHost 127.0.0.110

<VirtualHost 127.0.0.110>
ServerName www.robman.de
ServerAdmin webmaster@robman.de
DocumentRoot D:/Pfad/zum/Verzeichnis
</VirtualHost>

Hoffe mir kann jemand behilflich sein. Wer das gleiche Problem schon einmal hatte und es mitlerweile gelöst hat, kann mir auch gerne seine httpd.conf - Datei per eMail senden, aus der ich mir dann auch selber einen Reim machen kann.

Gruß Robman

  1. Hallo!

    z.B. http://www.robman.de, in einem Browser aufrufen ?

    Ich würde für den internen Gebrauch eine Domain wie "robman.int", "www.robman.int", "robmin" usw. verwenden. Du solltest keine offizielle TLD verwenden.

    #NameVirtualHost 127.0.0.110

    <VirtualHost 127.0.0.110>

    ServerName robmin.int

    ServerAdmin webmaster@robman.de
    DocumentRoot D:/Pfad/zum/Verzeichnis
    </VirtualHost>

    Dann trägst Du in die hosts-Datei (c:\windows\system32\drivers\hosts) folgendes ein:

    127.0.0.110  robmin.int

    Bevor versucht wird den Namen aufzulösen, wird in diese Datei geschaut. Dort wird dann der Name gefunden und bei 127.0.0.110 nachgefragt. Da horscht dann der Apache.

    MfG, André Laugks
    L-Andre @ gmx.de

    1. Berichtigung:

      Bevor versucht wird den Namen aufzulösen, wird in diese Datei geschaut. Dort wird dann der Name gefunden und bei 127.0.0.110 nachgefragt. Da horscht dann der Apache.

      Bevor versucht wird Domainnamen aufzulösen, wird in diese Datei geschaut. Dort wird dann der Name gefunden und bei 127.0.0.110 nachgefragt. Da horscht dann der Apache.

      MfG, André Laugks

    2. Morgen !

      Das mit dem eintrag in hosts datei wollte ich ja eigentlich vermeiden, da man bei meinem fall, wenn ich die adresse www.robman.de in der hosts eine ip zuweise, ich meine seite online nicht erreiche und dann jedesmal den eintrage in der hosts datei löschen müsste.

      Dann trägst Du in die hosts-Datei (c:\windows\system32\drivers\hosts) folgendes ein:

      127.0.0.110  robmin.int

      Es muss doch möglich sein die httpd.conf so zu konfigurieren, daß man eben nichts an der hosts-datei ändern muss und die namens-URL auch so im browser öffnen kann.

      Gruß Robman

      1. Hallo!

        Das mit dem eintrag in hosts datei wollte ich ja eigentlich vermeiden, da man bei meinem fall, wenn ich die adresse www.robman.de in der hosts eine ip zuweise, ich meine seite online nicht erreiche und dann jedesmal den eintrage in der hosts datei löschen müsste.

        deshalb habe ich auch geschrieben, sollst Du für den lokalen gebrauch NICHT "www.robman.de" verwenden. Sondern "robman", "robman.int" oder "www.robmin.int".

        Wenn Du Dich für robman.int entschieden hast, gelangst Du über robman.int auf deine lokale Maschine.

        Dann trägst Du in die hosts-Datei (c:\windows\system32\drivers\hosts) folgendes ein:

        127.0.0.110  robmin.int

        Es muss doch möglich sein die httpd.conf so zu konfigurieren, daß man eben nichts an der hosts-datei ändern muss und die namens-URL auch so im browser öffnen kann.

        Nein! Das geht nicht! Du benötigst ein Nameserver der Domains in die IP auflöst. Mit der IP erreicht man dann den Rechner auf dem der Apache läuft. Der Apache nimmt die Doamin auf und nimmt dem dementsprechend den virtuellen Host.

        Auch wenn Du Dir lokal ein Nameserver installierst, mußt Du eine Domain wählen, die öffentlich nicht vergeben werden kann, damit Du keine "Domain-Konflikte" bekommst.

        MfG, André Laugks
        L-Andre @ gmx.de

        1. Hi !

          Das mit der "robman.int" URL ist ja schön und gut aber in meinem Projekt läuft vieles über PHP-Scripte die eindeutige URLs verwenden und wenn ich an diese die \*.int endung vergebe muss ich jedesmal, wenn ich neue php sache schreibe oder änderungen vornehme, die jeweiligen eindeutigen URLs in den Scripten vor dem Upload umändern, was erstens viel arbeit und zeit kostet und zweitens schleichen sich auch fehler ein, wenn ich mal was vergesse...
          Nur deswegen will ich eine andere Methodik benutzen, um eben diese eindeutige URL www.robman.de lokal nutzen zu können, ohne auf die Online URL www.robman.de verzichten zu müssen.
          Es muss doch einen Weg geben ohne die hosts-datei eine IP bzw. Namensauflösung zu gewährleisten !

          *bin total verzweifelt*

          Gruß Robman

          1. Hallo!

            Das mit der "robman.int" URL ist ja schön und gut aber in meinem Projekt läuft vieles über PHP-Scripte die eindeutige URLs verwenden und wenn ich an diese die \*.int endung vergebe muss ich jedesmal, wenn ich neue php sache schreibe oder änderungen vornehme, die jeweiligen eindeutigen URLs in den Scripten vor dem Upload umändern, was erstens viel arbeit und zeit kostet und zweitens schleichen sich auch fehler ein, wenn ich mal was vergesse...

            Schaue Dir mal die Umgebungsvariable $_SERVER["SERVER_NAME"] an.

            MfG, André Laugks
            L-Andre @ gmx.de

            1. Schaue Dir mal die Umgebungsvariable $_SERVER["SERVER_NAME"] an.

              Uppps, wenn Du mit Perl oder einer anderen Sprache als PHP arbeitest, greifst Du natürlich anders auf diese Umgebungsvariable zu.

              MfG, André Laugks

              1. Hi !

                ... mal was anderes, hast du dir mal meine Page angesehen ;-).
                Kannst ja mal ein kleines Urteil abgeben, wenn`s die Zeit erlaubt.

                Gruß Robman

      2. Das mit dem eintrag in hosts datei wollte ich ja eigentlich vermeiden, da man bei meinem fall, wenn ich die adresse www.robman.de in der hosts eine ip zuweise, ich meine seite online nicht erreiche und dann jedesmal den eintrage in der hosts datei löschen müsste.

        Es muss doch möglich sein die httpd.conf so zu konfigurieren, daß man eben nichts an der hosts-datei ändern muss und die namens-URL auch so im browser öffnen kann.

        Du hast anscheinend das Prinzip von IP-Adressen (12.3.4.5) und Domains (blabla.de) nicht verstanden. Egal mit welchen Dienst Du auf eine Domain zugreifst, es wird immer erst die Domain in eine IP-Adresse aufgelöst, denn nur mit einer IP-Adresse kann man einer Verbindung herstellen.
        Wenn Du also unbedingt willst, daß robman.de zeitweilig auf eine andere Adresse als die offizielle zeigt, wirst Du nicht drum rumkommen, irgendwo (naheliegenderweise in der hosts-Datei), diese Adresse entsprechend zu verbiegen.

        Das hat alles absolut garnichts mit dem Apache zu tun, denn der Apache ist nicht für die Namensauflösung zuständig. Sämtliche Domains in der Apache-Konfiguration werden ebenfalls vor Benutzung mittels DNS in IP-Adressen aufgelöst; mit Ausnahme der ServerName/-Alias-Einträge in namensbasierten <VirtualHost>s, diese werden mit den Angaben, die der Browser in seiner HTTP-Anfrage (d.h. wenn die Verbindung schon steht) sendet, verglichen.

        Gruß,
          soenk.e

        PS: Wenn Du eine andere IP-Adresse als die 127.0.0.1 benutzt, solltest Du auch dafür sorgen, daß der Rechner diese Adresse als seine eigene erkennt.

        PPS: Wenn Du nicht weißt, wozu die Einstellung Listen gut ist, solltest Du vor der Benutzung vielleicht erstmal einen Blick in die Anleitung unter [http://httpd.apache.org] werfen..

    3. Ich würde für den internen Gebrauch eine Domain wie "robman.int", "www.robman.int", "robmin" usw. verwenden. Du solltest keine offizielle TLD verwenden.

      Warum schlägst du dann genau eine solche vor?

      H.

  2. hi,

    #NameVirtualHost 127.0.0.110
    <VirtualHost 127.0.0.110>

    naja, also als erstes muß natürlich das Kommentarzeichen vor NameVirtualHost 127... weg. Und dann ist die "127" eine höchst unglückliche Wahl als IP-Adresse (hatten wir hier unlängst schonmal). 127.0.0.1 ist die Loopback-Adresse, damit ist die "127" erledingt, und "127.0.0.110" solltest du für den Anfang wenigstens doch erstmal weglassen.
    Nimm lieber eine 192.168.xxx.xxx, dann soltle es keine Probleme mehr geben.

    ServerName www.robman.de
    ServerAdmin webmaster@robman.de
    DocumentRoot D:/Pfad/zum/Verzeichnis
    </VirtualHost>

    Das sieht so weit ganz normal aus

    Wer das gleiche Problem schon einmal hatte und es mitlerweile gelöst hat, kann mir auch gerne seine httpd.conf - Datei per eMail senden

    ich werd mich hüten, dir eine meiner drei funktionierenden httpd.conf-Dateien zu schicken, selbst wenn da grundsätzlich funktionierende virtHosts drinstehen ;-)

    ähm <hüstel>, hast du dran gedacht, daß du nach jeder Veränderung der httpd.conf deinen Apache anhalten und neu starten mußt?</hüstel>

    Grüße aus Berlin

    Christoph S.

    1. Morgen !

      ... für wie dumm hällst du mich, starten & anhalten tztztz ;-).

      »»
      ähm <hüstel>, hast du dran gedacht, daß du nach jeder Veränderung der httpd.conf deinen Apache anhalten und neu starten mußt?</hüstel>

      Ich hab die IP geändert und jetzt geht nix mehr bzw. die seite kann nicht angezeigt werden. Die V-Host sieht jetzt so aus...

      Listen 192.168.155.110

      NameVirtualHost 192.168.155.110

      <VirtualHost 192.168.155.110>
      ServerName www.robman.de
      ServerAdmin webmaster@robman.de
      DocumentRoot D:/Pfad/zum/Verzeichnis
      </VirtualHost>

      Ich habs versucht indem ich entweder Listen oder NameVirtualHost oder beides ausgeklammert habe aber kein resultat. der server reagiert auf beides nicht, IP und URL. Woran liegts ?
      Und wofür steht der Befehl Listen überhaupt ?

      Gruß Robman

      1. morgen ebenfalls,

        Ich hab die IP geändert und jetzt geht nix mehr bzw. die seite kann nicht angezeigt werden. Die V-Host sieht jetzt so aus...

        Listen 192.168.155.110

        da fehlt die Angabe des ports dahinter

        NameVirtualHost 192.168.155.110

        <VirtualHost 192.168.155.110>
        ServerName www.robman.de
        ServerAdmin webmaster@robman.de
        DocumentRoot D:/Pfad/zum/Verzeichnis
        </VirtualHost>

        das müßte so funktionieren

        Ich habs versucht indem ich entweder Listen oder NameVirtualHost oder beides ausgeklammert habe

        "Listen" kann auch weggelassen werden

        Und wofür steht der Befehl Listen überhaupt ?

        "Listen: Allows you to bind Apache to specific IP addresses and/or
        ports, in addition to the default."
        Bei Apache 1.3.x unter Windows habe ich bessere Erfahrungen mit "bind" gemacht anstelle von "listen"  -  mit Apache2 wird "bind" allerdings "deprecated".

        Bei mir funktioniert die Angabe "listen" ohne Angabe einer speziellen IP-Adresse, ich habe nur den gewünschten port hingeschrieben, also "port 1080".

        Wenn du deinen Apache auf einem Einzelplatzrechner installiert hast, der dir normalerweise auch noch die Internetverbindung herstellt, kann es sinnvoll sein, den Browser anzuweisen, über einen Proxy zu gehen. Dann trägst du als IP-Adresse die IP-Adresse ein, die du als "NameVirtualHost" vorgegeben hast.

        Und noch etwas (obwohl ich das nun gar nicht mehr nachzufragen wage): natürlich muß dein Rechner diese IP-Adresse auch selbst bekommen als statische IP

        Grüße aus Berlin

        Christoph S.