senäh

17senäh und so…

Coding-Logo

PHP, Server & Config
14. Jun 2011
Kommentare: 0

Virtuelle Hosts für das angenehme, lokale Entwickeln

Kategorien: PHP, Server & Config | 14. Jun 2011 | Kommentare: 0

Ich habe schon des Öfteren von gelesen und will es auch hier mal allen vorstellen, die um die Möglichkeit nicht wussten oder sie noch nie wahrgenommen haben: das Erstellen virtueller Hosts.

Was sind virtuelle Hosts und wozu sind sie gut?

Wenn man lokal mal wieder irgendnen Schmarn für’s Web programmiert, sieht die in der Adressleiste des Browsers aufzurufende Adresse meist so oder so ähnlich aus:

http://localhost/mein_cooles_projekt/

Das ist ok. Aber unedel. Geiler wär doch, wenn man so etwas wie http://mein_cooles_projekt/ aufrufen könnte. Und das geht ;)

Virtual Hosts definieren

Dazu müsst ihr in die Konfigurationsdatei des Apache Servers. Das gute Stück nennt sich httpd.conf und befindet sich je nach System in einem anderen Ordner. Ich benutze Mac OS und verwende MAMP für meinen lokalen Webserver. Bei mir lautet der Pfad: /Applications/MAMP/conf/apache/httpd.conf. Wenn ihr ein Windows-System mit XAMPP laufen habt, schaut mal unter C:\Programme\xampp\apache\conf\httpd.conf nach.

Öffnet die Datei erstmal ;)

Jetzt benötigen wir den Pfad zu eurem Webseitenverzeichnis. Unter Mac in den meisten Fällen /Users/BENUTZERNAME/Sites. Windows eher so hier: C:\Programme\xampp\htdocs. Falls ihr das Webseitenverzeichnis manuell geändert habt, müsst ihr euch an dieser Stelle euren manuellen Pfad merken. Loggisch, oder? :D

Nun zurück zur httpd.conf. Die sollte ja noch offen sein ;) Dort fügt ihr am Ende der Datei folgenden Code ein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
NameVirtualHost *

<VirtualHost *>
  DocumentRoot "WEBSEITENVERZEICHNIS"
  ServerName localhost
</VirtualHost>

<VirtualHost *>
  DocumentRoot "WEBSEITENVERZEICHNIS/NAME_DES_PROJEKTORDNERS"
  ServerName NAME_DES_PROJEKTORDNERS
  <Directory "WEBSEITENVERZEICHNIS/NAME_DES_PROJEKTORDNERS">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Step by Step

Vorneweg: hier führen viele Wege nach Rom. Allerdings bin ich mit dieser Variante am besten gefahren. Darum werde ich euch diese auch näher bringen.

Zeile 1 ist unser Zugriffspunkt. Damit die nachfolgenden Zeilen wissen, worauf sie sich beziehen müssen, setzen wir hier den Bezugspunkt. Der besteht zwar lediglich aus einem Stern (*) und fungiert als sogenannte Wildcard, d.h. alles geht, aber das passt schon.

In den Zeilen 3-6 sorgen wir dafür, dass alle Projekte immer noch über die Standardadresse (http://localhost/mein_cooler_ordner) ansprechbar sind. Andernfalls wären wir gezwungen für jedes kleine, neue Popel-Projekt einen virtuellen Host anzulegen. Wenn ich aber nur mal schnell einen CSS-Hack testen möchte, will ich nicht erst noch nen virtuellen Host anlegen müssen. Ich will gleich loslegen. Und besagte Zeilen 3-6 schaffen die entsprechende Flexibilität dazu.

In Zeile 8-15 findet die eigentliche Definition des Virtual Hosts statt. Wir sagen, wo unser Ziel ist (DocumentRoot) und wie wir unseren virtuellen Host taufen möchten (ServerName).  Zeile 11-14 sind beispielhafte Direktiven, um noch ein bisschen weiter zu konfigurieren, falls gewollt.

Eintrag in die Hosts-Datei

Zu guter Letzt muss unser neuer, virtueller Host noch in die Hosts-Datei eingetragen werden. Unter Mac in /private/etc/hosts. Der Windows-User schaut hier: C:\Windows\System32\drivers\etc\hosts.
Da es sich hier um eine Systemdatei handelt, ist diese versteckt. Ihr solltet also sicherstellen, dass euer Finder/Explorer auch unsichtbare Ordner und Dateien anzeigt.

Habt ihr sie einmal offen, einfach ans Ende der Hosts-Datei folgenden Eintrag einfügen:

127.0.0.1 NAME_DES_PROJEKTORDNERS

Brav speichern, den Apache Server neu starten und im Browser der Wahl http://NAME_DES_PROJEKTORDNERS/ aufrufen. Klappt hoffentlich. Falls ja: feddich.

Braucht man virtuelle Hosts?

Um eine nützliche Erfindung handelt es sich bei den virtuellen Hosts auf jeden Fall. Ich persönlich habe aber beschlossen, nicht damit zu arbeiten. Warum? http://NAME_DES_PROJEKTORDNERS/ hat in der Form keine Unterordner und fungiert somit quasi als Root. Ok, das war am Anfang unser Ziel: die lästige Unterordner-Struktur nicht ständig in die Adressleiste tippen zu müssen. Allerdings fallen ohne virtuelle Hosts Fehler bei der Anwendung von absoluten und relativen Pfaden viel eher auf.

Ich habe es einmal erlebt, dass ich lokal mit virtuellen Hosts gearbeitet habe und beim Live-Gang nichts hingehauen hat. Der Grund waren fehlerhafte relative Pfade. Durch meinen virtuellen Host ist mir das nicht aufgefallen, er hat mich also dahingehend ein bisschen blind für derartige Fehler gemacht.

War meine Blödheit und muss jeder selbst wissen. Das war nur abschließend mein Senf dazu ;)

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)

Kommentare (0)

Für diesen Beitrag wurden Kommentare deaktiviert.