Marian: virtueller host

Hi Forum,

Ich möchte auf meinem server (lokal, xampp 1.4.9, winxp prof sp2) einen virtuellen host einrichten, wie in diesem artikel beschrieben (allerdings nicht mit src.selfhtml.org, aber das ist ja egal).
Wenn ich jetzt in der httpd.conf einen VirtualHost, wie in dem artikel und unter apache.org beschrieben, erstelle:

NameVirtualHost *

<VirtualHost *>
  ServerName localhost
  DocumentRoot "M:\htdocs"
</VirtualHost>

<VirtualHost *>
  ServerName example
  DocumentRoot "M:\htdocs\example"
</VirtualHost>

wird immer der localhost-ordner angezeigt, nicht der example-ordner, wenn ich http://example eingebe (hosts-datei ist konfiguriert). Auf 127.0.0.2 oä, wie in dem artikel beschrieben, reagiert mein server nicht.

Woran könnte das liegen? ich kann auch gerne noch weitere config-dateien-inhalte posten, ich weiß nur grad keine mehr, die man brauchen könnte. Kann man irgendwo konfigurieren, auf welche ips der server reagiert?
Bitte keine kommentare dass ich xampp hab, ich will das und brauche das paket (wenn ich das ändere, dann nicht jetzt, ich wollte einfach nur einen server haben, der gleich funktioniert). danke.

Gruß, Marian

  1. hallo,

    Ich möchte auf meinem server (lokal, xampp 1.4.9, winxp prof sp2) einen virtuellen host einrichten

    Wenn ich mich richtig erinnere, wird in diesem Artikel auch auf eine etwas ausführlichere Darstellung verwiesen.

    Grüße aus Berlin

    Christoph S.

    1. Hi Christoph Schnauß,

      Wenn ich mich richtig erinnere, wird in diesem Artikel auch auf eine etwas ausführlichere Darstellung verwiesen.

      Ja, danke, aber es geht immer noch nicht.
      es geht wohl irgendwie nicht mit einer ip und nur mit verschiedenen ports. aber wenn ich jetzt für http://localhost port 80 nehm und für http://example port 2000, kommt bei example nix und bei localhost eine 400 bad request meldung dass ich einen port aufgerufen hab der eigentlich für ssl gedacht ist und wenn ich https://localhost eingeb gehts. aber das ist doch unlogisch, die fehlermeldung müsste doch, wenn überhaupt, kommen, wenn ich example (2000) aufruf und der localhost (80) müsste angezeigt werden???

      Gruß, Marian

      1. hallo,

        es geht wohl irgendwie nicht mit einer ip und nur mit verschiedenen ports. aber wenn ich jetzt für http://localhost port 80 nehm und für http://example port 2000, kommt bei example nix und bei localhost eine 400 bad request meldung dass ich einen port aufgerufen hab der eigentlich für ssl gedacht ist und wenn ich https://localhost eingeb gehts. aber das ist doch unlogisch, die fehlermeldung müsste doch, wenn überhaupt, kommen, wenn ich example (2000) aufruf und der localhost (80) müsste angezeigt werden?

        Das ist eine derart verworrene Aussage, daß ich nicht richtig weiß, wo ich deinen Sprachfluß zum Zweck des korrekten Zitierens unterbrechen müßte.

        Wie kommst du jetzt auf verscheidene ports? Wo sind die eingestellt? Wie sind sie eingestellt?
        Was sagen die Server-logs?
        Was willst du plötzlich mit HTTPS?

        Wenns geht, solltest du bitte mal der Reihe nach und systematisch darlegen, wo es denn nun grade bei dir klemmt. Vor allem deine Erwähnung von HTTPS verblüfft mich etwas, weil du nicht angegeben hast, ob und wie du SSL konfiguriert hast. Das wichtigste sind aber die Server-logs, die dir eigentlich genügend Auskunft geben sollten.

        Grüße aus Berlin

        Christoph S.

        1. Hi Christoph Schnauß,

          ok, nochmal:
          ich hab in der httpd.conf folgendes eingegeben:

          NameVirtualHost *
          <VirtualHost *>
               ServerName localhost
               DocumentRoot "m:\htdocs"
          </VirtualHost>

          NameVirtualHost *
          <VirtualHost *>
               ServerName example
               DocumentRoot "m:\htdocs\example"
          </VirtualHost>

          das stimmt doch soweit, oder?
          dann ruf ich http://localhost auf, und folgende meldung kommt:

          Bad Request

          Your browser sent a request that this server could not understand.
          Reason: You're speaking plain HTTP to an SSL-enabled server port.
          Instead use the HTTPS scheme to access this URL, please.

          Hint: https://localhost/

          mit ssl geht es dann.

          das mit den anderen ports hab ich wieder geändert, ich hab die original-httpd.conf in die httpd.conf kopiert und außer dem oben nix verändert (nur ein paar aliases, aber andere ordnernamen, und wenn ich die beiden virtual-hosts weglass (siehe oben) geht es auch)

          Verständlich? Gruß, Marian

          1. Hallo,

            wie sieht denn deine hosts aus?

            mfg
            Twilo

            1. Hi Twilo,

              wie sieht denn deine hosts aus?

              nix besonderes:
              127.0.0.1   localhost
              127.0.0.1   example

              aber was ich noch gesehen hab (error.log):
              VirtualHost _default_:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

              Gruß, Marian

              1. Hallo,

                hast du es schon mal so versucht?

                <VirtualHost 127.0.0.1:80>
                  ServerName localhost
                  DocumentRoot "M:\htdocs"
                </VirtualHost>

                <VirtualHost 127.0.0.1:80>
                  ServerName example
                  DocumentRoot "M:\htdocs\example"
                </VirtualHost>

                mfg
                Twilo

                1. Hi Twilo,

                  hast du es schon mal so versucht?
                  <VirtualHost 127.0.0.1:80>
                  [...]
                  <VirtualHost 127.0.0.1:80>
                  [...]

                  ja, es geht (davor natürlich noch NameVirtualHost 127.0.0.1:80)

                  danke !!!

                  und wenn jetzt jemand von extern (mit einer "normalen" ip, nicht 127.0.0.1) zugreift, kommt der normale documentroot?
                  dann könnte ich den auch umlegen, dass dann ein anderer ordner angezeigt wird, in dem nur sachen drin sind, die jeder sehen kann?
                  (also bisher hab ich .htaccess(im m:\htdocs): deny from all; allow from 127.0.0.1 (BTW: sind damit auch alias(httpd.conf)-ordner geschützt?)

                  Gruß, Marian

                  1. hallo,

                    und wenn jetzt jemand von extern (mit einer "normalen" ip, nicht 127.0.0.1) zugreift, kommt der normale documentroot?

                    Die Startseite, die dort liegt, sollte ausgeliefert werden, ja.

                    dann könnte ich den auch umlegen, dass dann ein anderer ordner angezeigt wird, in dem nur sachen drin sind, die jeder sehen kann?

                    Ja.

                    (also bisher hab ich .htaccess(im m:\htdocs): deny from all; allow from 127.0.0.1 (BTW: sind damit auch alias(httpd.conf)-ordner geschützt?)

                    Es ist zwar einigermaßen unsinnig, auf dem eigenen Rechner .htaccess einzusetzen. Aber grundsätzlich gilt bei dieser Vorgabe, daß außer 127.0.0.1 niemand auf ein mit einer solchen .htaccess versehenes Verzeichnis Zugriff hat. Was du hier mit Alias meinst, ist nicht ganz klar.

                    Grüße aus Berlin

                    Christoph S.