WernerK: Mehere Virtual Hosts, Vorteile??

Hallo,
ich habe bisher meine lokalen PHP Anwendungen immer nur unter dem Apache 2 bei "htdocs" laufen lassen. Also in der "httpd.conf" die Angabe:
DocumentRoot "C:/Programme/MyWebserver/htdocs"

Jetzt habe ich eine Konfiguration gesehen wo für eine Anwendung mehreren Virtual Hosts angegeben wurden.
Ich habe bisher noch nie mit Virtual Hosts gearbeitet.
Was hat das denn für einen Vorteil?
Bringt das für den Apache bessere Performance?

So wie ich es sehe, ist der DocumentRoot ja immer gleich. Nur der ServerName und die Logs unterscheiden sich. Ist das dann eine Arte "Lastverteilung"?

<VirtualHost *:80>
    ServerAdmin admin@.....com
    DocumentRoot "C:/Program Files/myapp/web"
    ServerName myserver.test.@test
    ServerAlias www.host.XYZ.@Home
    ErrorLog "logs/dummy-host.XYZ.@Home-error.log"
    CustomLog "logs/dummy-host.XYZ.@Home-access.log" common

Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@.....com
    DocumentRoot "C:/Program Files/myapp/web"
    ServerName test1.XYZ.@Home
    ErrorLog "logs/dummy-host2.XYZ.@Home-error.log"
    CustomLog "logs/dummy-host2.XYZ.@Home-access.log" common

Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@.....com
    DocumentRoot "C:\Program Files\myapp\web"
    ServerName queue.XYZ.@Home
    ErrorLog "logs/dummy-host2.error.log"
    CustomLog "logs/dummy-host2.access.log" common

Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@.....com
    DocumentRoot "C:\Program Files\myapp\web"
    ServerName intcomm.XYZ.@Home
    ErrorLog "logs/dummy-host2.error.log"
    CustomLog "logs/dummy-host2.access.log" common

Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
</VirtualHost>

viele Grüße
Werner

  1. Hello,

    <VirtualHost *:80>
        ServerAdmin admin@.....com

    DocumentRoot "C:/Program Files/myapp/web1"
          ServerName myserver1.test

    ErrorLog "logs/dummy-host.XYZ.@Home-error.log"
        CustomLog "logs/dummy-host.XYZ.@Home-access.log" common

    Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
    </VirtualHost>

    <VirtualHost *:80>
        ServerAdmin admin@.....com

    DocumentRoot "C:/Program Files/myapp/web2"

    ServerName test1.XYZ.@Home
        ErrorLog "logs/dummy-host2.XYZ.@Home-error.log"
        CustomLog "logs/dummy-host2.XYZ.@Home-access.log" common

    Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
    </VirtualHost>

    <VirtualHost *:80>
        ServerAdmin admin@.....com

    DocumentRoot "C:\Program Files\myapp\web3"

    ServerName queue.XYZ.@Home
        ErrorLog "logs/dummy-host2.error.log"
        CustomLog "logs/dummy-host2.access.log" common

    Alias /sf/ "C:/Program files/myapp/data/symfony/web/sf/"
    </VirtualHost>

    <VirtualHost *:80>
        ServerAdmin admin@.....com

    DocumentRoot "C:\Program Files\myapp\web4"

    ServerName intcomm.XYZ.@Home
        ErrorLog "logs/dummy-host2.error.log"
        CustomLog "logs/dummy-host2.access.log" common
    </VirtualHost>

    Es trennt Dir einfach deine verschiedenen Projekte voneinander, fast so als würden sie auf getrennten Hosts laufen.
    Dazu musst Du nur auch dein DNS anpassen, damit der passende Hostname mitgeliefert wird. Bei WinDOSen reicht es, dazu in der HOSTS-Datei einen entsprechenden Eintrag vorzunehmen.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hallo Tom,
      danke für die Erklärung.

      Es trennt Dir einfach deine verschiedenen Projekte voneinander, fast so als würden sie auf getrennten Hosts laufen.
      Dazu musst Du nur auch dein DNS anpassen, damit der passende Hostname mitgeliefert wird. Bei WinDOSen reicht es, dazu in der HOSTS-Datei einen entsprechenden Eintrag vorzunehmen.

      Ok, so wie du es verändert hast mit "web1" bis "web4" würde ich es einsehen.
      So steht es aber nicht in der Original "vhosts.conf" sonder so wie ich es gepostet hatte nur mit viermal "web"
      Also wäre doch das Projekt immer gleich. Nur der Servername ist anders.

      Und was bringt das?

      Gruss
      Werner

      1. Hello,

        Ok, so wie du es verändert hast mit "web1" bis "web4" würde ich es einsehen.
        So steht es aber nicht in der Original "vhosts.conf" sonder so wie ich es gepostet hatte nur mit viermal "web"
        Also wäre doch das Projekt immer gleich. Nur der Servername ist anders.

        Ja, so wie es dort steht, ist es immer dieselbe Document Root, also handelt es ich um dieselben tatsächlichen Ressourcen.

        Und was bringt das?

        Könnte es ein Fehler im Beispiel sein?

        Da ich nicht weiß, worum es in diesem Beispiel noch geht, kann ich nicht wirklich etwas dazu sagen.

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hallo Tom,

          Da ich nicht weiß, worum es in diesem Beispiel noch geht, kann ich nicht wirklich etwas dazu sagen.

          ich vermute um ein nettes Framework: Symfony, Open-Source PHP Web Framework.

          Freundliche Grüße

          Vinzenz

          1. Hello Vinzenz,

            ich vermute um ein nettes Framework: Symfony, Open-Source PHP Web Framework.

            Das hatte ich übersehen. Steht ja im Alias drin ;-)

            Ich kenne das Projekt unter diesem Namen allerdings noch nicht. Muss ich mir doch glatt mal anschauen. Derartige Ideen (z.B. Erkennung der Relationsart über den Namen) hatte ich hier auch mal geäußert und damals auch ein paar Gehversuche damit gemacht.

            Liebe Grüße aus Syburg bei Dortmund

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Hallo ihr beiden,

              ja der Bekannte hat das soweit ich weiss mit Symfony
              erstellt.
              Ich habe das vorher noch nie gehört und dachte aber das ist ein PHP Framework.

              Warum ist das dann so mit den VirtualHosts?
              Braucht das Symfony?

              Gruss
              Werner