Announcement

Collapse
No announcement yet.

Apache und virtuelle Hosts

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Apache und virtuelle Hosts

    Hallo, ich suche jemanden, der mir kurz etwas zum Thema Appache-Server helfen kann.

    Zur Vorgeschichte:
    Ich benutze mac os und habe Apache mit xampp installiert im root verzeichnis. Üblicherweise funktioniert xampp nur im root-Verzeichnis es sei denn man ändert in der httpg.config die stelle
    PHP Code:
    DocumentRoot "/Applications/xampp/xamppfiles/docs/" 
    des virtuellenHosts so ab, dass man einen anderen Host in enem anderen Verzeichnis anspricht.Das habe ich getan. Bei mir sieht der Pfad so aus:
    PHP Code:
    NameVirtualHost *:80

    #
    # 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.example.com
        DocumentRoot 
    "/Users/username/webseiten/xampp/xamppfiles/docs/dummy-host.example.com"
        
    ServerName dummy-host.example.com
        ServerAlias www
    .dummy-host.example.com
        ErrorLog 
    "logs/dummy-host.example.com-error_log"
        
    CustomLog "logs/dummy-host.example.com-access_log" common
    </VirtualHost
    Ich kann nun ganz bequem in meinem Ordner "Webseiten/xampp/htdocs" die Seiten verwalten ohne sie ständig ins root verzeichnis laden zu müssen

    Mein Problem:
    Ich möchte nu gern, dass mein apache-server nicht nur diese domain ansteuert sondern auch noch eine andere, die einen ganz eigenen htdocs- ordner verwendet in einem eigenen Verzeichnis.
    Dazu habe ich etwas über NameVirtualHosts in der Dokumentation gelesen aber ich werde daraus nicht ganz schlau. Ich habe in der httpd.conf den Befehl
    PHP Code:
    Listen 80
    Listen 8080 
    hinzugefügt
    und in der Datei httpd-vhosts.config den NameVirtualHost auf 8080 gesetzt:
    PHP Code:
    NameVirtualHost *:8080 
    Nun habe ich die beiden virtuellen hosts angepasst:
    PHP Code:
    <VirtualHost *:80>
        
    ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot 
    "---Pfad des Host 1-------------"
        
    ServerName dummy-host.example.com
        ServerAlias www
    .dummy-host.example.com
        ErrorLog 
    "logs/dummy-host.example.com-error_log"
        
    CustomLog "logs/dummy-host.example.com-access_log" common
    </VirtualHost>

    <
    VirtualHost *:8080>
        
    ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot 
    "------neuer Pfad des Host 2-----"
        
    ServerName dummy-host2.example.com
        ErrorLog 
    "logs/dummy-host2.example.com-error_log"
        
    CustomLog "logs/dummy-host2.example.com-access_log" common
    </VirtualHost
    Leider funktioniert das nicht. Kann den zweiten Host nicht ausführen oder ansteuern. Hab auch schon mehrere Varianten ausprobiert aber ich bekomme den zweiten Host einfach nicht zum laufen.
    Wer kann mir bei meinem Problem helfen? Bin auch über kure denkanstöße danbar.
    grüße lux

  • #2
    Hallo lux,

    den zweiten Port benötigst du dazu nicht!
    Es sollte genügen, wenn du in der Apache-Konfiguration den zweiten Host einfach hinzufügst:
    PHP Code:
    NameVirtualHost *:80

    #
    # 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.example.com
        DocumentRoot 
    "/Users/username/webseiten/xampp/xamppfiles/docs/dummy-host.example.com"
        
    ServerName dummy-host.example.com
        ServerAlias www
    .dummy-host.example.com
        ErrorLog 
    "logs/dummy-host.example.com-error_log"
        
    CustomLog "logs/dummy-host.example.com-access_log" common
    </VirtualHost

    <
    VirtualHost *:80>
        
    ServerAdmin webmaster@dummy-host2.example.com
        DocumentRoot 
    "------neuer Pfad des Host 2-----"
        
    ServerName dummy-host2.example.com
        ErrorLog 
    "logs/dummy-host2.example.com-error_log"
        
    CustomLog "logs/dummy-host2.example.com-access_log" common
    </VirtualHost
    Nach einem Restart des Apache sollten beide virtuellen Hosts erreichbar sein.
    In deiner localen Namensauflösung mußt du jedoch noch sicherstellen, das www.dummy-host.example.com und dummy-host2.example.com jeweils auf die IP-Adresse deines Servers (also für die lokale Installation auf 127.0.0.1) aufgelöst werden. Üblicherweise geschieht dies über eine Datei Namens hosts. Für Mac-OS kenn ich mich jedoch nicht aus. Bei Windows befindet sich diese in /windir/system32/drivers/etc und bei Linux in /etc. Hier mußt du mal für dein OS suchen.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Habe alles so weit verstanden. Auch wo ich die Namensauflösung durchführe habe ich herausgefunden. Ich verstehe nur ein Teil nicht. Ich habe auf den Pfad
      PHP Code:
      DocumentRoot "/Users/username/webseiten/xampp/xamppfiles/docs/dummy-host.example.com" 
      ein Projekt zu liegen. Alles was ich zum Projekt benötige liegt in dem Ordner htdocs. Ich verstehe den letzten Teil des Pfades nicht. In meinem ordner liegt die datei dummy-host.example.com gar nicht. Es ist doch eine domain? schreibt ma die einfach hinter htdocs weils der server dann findet oder verbirgt sich dahinter ein realer ordner? der die bezeichnung einer domain hat!?
      danke für deinen Beitrag
      gruß lux

      Comment


      • #4
        Originally posted by lux View Post
        ...Ich verstehe den letzten Teil des Pfades nicht. In meinem ordner liegt die datei dummy-host.example.com gar nicht. Es ist doch eine domain?
        Nein!
        Originally posted by lux View Post
        ...
        schreibt ma die einfach hinter htdocs weils der server dann findet oder verbirgt sich dahinter ein realer ordner? der die bezeichnung einer domain hat!?
        Ja!
        Die Angabe hinter DocumentRoot ist ein realer Pfad auf dem System des Servers und hat mit dem Namen der Domain erstmal nichts zu tun.
        Bei vielen virtuellen Hosts auf einem System ist es jedoch durchaus sinnvoll die jeweiligen DocumentRoot genauso zu benennen, wie die Domain die dort liegt. Das macht die Suche einfacher und erspart jedesmal den Blick in die Apache-Konfiguration.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment

        Working...
        X