Virtuelle Hosts mit Apache

In diesem Artikel geht es darum virtuelle Hosts mit Apache anzulegen. Der Apache Webserver bietet die Möglichkeit virtuelle Hosts anzulegen. Für mich als Entwickler ist das vor allem für meine zahlreichen Projekte interessant, welche ich alle auf einem einzigen Apache Server installiert habe. Dort kann ich einfach Produktiv und Testumgebungen anlegen. Für meine Zwecke verwende ich XAMPP für Mac, diese Anleitung sollte aber auch für XAMPP unter anderen Betriebssystemen funktionieren bzw. auf tatsächlichen Apache Webserver Installationen.

virtuelle Hosts mit Apache

Virtuelle Hosts mit Apache

Unter dem Webserver Apache kann man virtuelle Hosts anlegen. Dabei wird der Applikation ein Name gegeben über welchen man diese über die URL aufrufen kann. Wo die Applikation im Dateisystem liegt ist dabei vollkommen egal, solange der Webserver darauf Zugriff hat. Durch virtuelle Hosts mit Apache kann man Applikationen aus unterschiedlichsten Quellen unter einer Adresse oder Domain anbieten und vor allem recht einfach verschieben und umbenennen, ohne dass man dazu den Code ändern muss.

Projekte anlegen

Normalerweise legt man neue Projekte im ‚htdocs‚ Verzeichnis von XAMPP an. Dort findet sich nach einer Basisinstallation beispielsweise die Webapplikation Webalizer. Bei gestartetem Apache kann man diese Applikation im Browser unter localhost/webalizer erreichen. Wollen wir also schnell unsere Applikation testen, so kopieren wie sie einfach dort hinein und können dann sofort über localhost im Browser darauf zugreifen.

Vorteile

  • schnell und einfach
  • keine weitere Konfiguration nötig

Nachteile

  • alle Projekte sind nur über localhost erreichbar
  • man muss entweder das Projekt vorm Testen immer kopieren, oder man erstellt einen Link

Konfiguration

Um einen virtuellen Host zu erstellen schauen wir in das ‚etc‚ Verzeichnis unserer XAMPP Installation. In der Datei ‚httpd.conf‚ ändern wir globale Einstellungen für den Apache. Dies könnte für manche Projekte interessant sein, da man Module aktivieren und deaktivieren kann. Wir schauen aber weiter in das ‚extra‚ Verzeichnis. Dort liegt die für die virtuellen Hosts benötigte Datei ‚httpd-vhosts.conf‘. Es empfiehlt sich vor dem Ändern dieser Datei schnell eine Kopie zu erstellen.

Auf den ersten Blick zeigt die Datei, dass hier schon ein virtueller Host definiert ist. Ja, localhost ist auch ein virtueller Host! Diesen lassen wir wie er ist. Weitere virtuelle Hosts kann man einfach darunter hinzufügen. Folgender Code erstellt einen virtuellen Host:

Die Konfiguration ist durchaus einfach. Folgendes muss eingestellt werden:

  • ServerName
    das ist der Name unseres Hosts. Die Seite wird im Browser über ‚MyTestApp‘ erreichbar sein
  • DocumentRoot
    das ist der Pfad wo der Code unserer Webapplikation liegt. In diesem Beispiel in meinem OSX Home Verzeichnis
  • DirectoryIndex
    üblicherweise die index.php oder index.html Datei welche dem Benutzer zuerst angezeigt wird
  • Directory
    hier kann man Zugriffsberechtigungen für das Applikationsverzeichnis festlegen.

Problem

Nach einem Neustart unseres Apache sollte die Applikation über ‚MyTestApp‚ erreichbar sein. Doch es funktioniert nicht. Nach einer langen Fehlersuche und Recherche habe ich dann den Fehler gefunden. Die Lösung ist einfach und selbsterklärend. Es fehlt einfach ein Eintrag unseres virtuellen Hosts in der ‚hosts‘ Datei unseres Betriebssystems. Dies ist von System zu System unterschiedlich. Bei Unix ähnlichen Systemen (Linux, OSX) einfach die Datei ‚/etc/hosts‘ editieren. Wir fügen hier also folgende Zeile am Ende dazu:

Nun funktioniert der virtuelle Host!

Fazit

Virtuelle Hosts mit Apache werden gerne auf Webserver eingesetzt um diese über den Browser aufrufbar zu machen, im Dateisystem müssen diese Applikationen aber dann nicht zwangsläufig alle im selben Verzeichnis (meist /var/www) liegen. Ein Linux Server auf dem mehrere Benutzer Applikationen verwalten und bearbeiten macht es durchaus Sinn die Daten im jeweiligen Benutzerverzeichnis abzulegen. Jeder Benutzer hat ein eigenes Login, bearbeitet nur seine Daten, der Webserver stellt aber alle Applikationen zur Verfügung als wären sie im selben Verzeichnis abgespeichert.

Ist das Anlegen virtueller Hosts sinnvoll? Wie schaut eure /etc/hosts Datei aus?

(Visited 272 times, 1 visits today)

Das könnte auch interessant sein...

1 Antwort

  1. Ikem sagt:

    Ich wüsste gerne wie man bei Apache2 Sub Domains erstellt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.