MAMP und virtuelle Hosts

Bei der Webentwicklung auf lokalen Systemen kann es mitunter je nach Anzahl der eigenen Projekte dazu kommen, dass es etwas unübersichtlich wird. Ohne weiteres sind günstigsten Fall unter http://127.0.0.1/projektname/ zu erreichen. Je nach Servereinstellung kommt unter Umständen noch der entsprechende Port dazu, so das eine Adresse dann auch mal so aussehen kann:

http://127.0.0.1:8888/projektname/

Wobei anstelle der IP auch localhost verwendet werden kann. Genau an dieser Stelle aber kann der ambitionierte Webentwicklung (ob beruflich oder nur so zum Spaß) ansetzen. Das Zauberwort dabei sind so genannte „Virtueller Hosts”. In der Apache-Dokumentation findet sich dazu folgende Erklärung:

IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich benötigen Sie eine IP-Adresse für jeden virtuellen Host. Bei der Verwendung von namensbasierten virtuellen Hosts verläßt sich der Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header angibt. Durch Anwendung dieser Technik können sich mehrere verschiedene Hosts die gleiche IP-Adresse teilen.

Einfacher ausgedrückt: Durch die Verwendung von virtuellen Host lassen sich einer IP-Adresse Namen zuordnen. Ein solcher Name ist dabei localhost, der in der Regel auf das Root-Verzeichnis des Webservers verweist. Zusätzlich lassen sich noch weitere Namen einrichten, die dann auch auf andere Verzeichnisse des Webservers direkt verweisen.

Am Beispiel einer MAMP-Installation unter Mac OS X werde ich im folgenden zeigen, wie sich weitere virtuelle Hosts einrichten lassen. Unter Unix basierten Systeme dürfte die Vorgehensweise ähnlich sein.

Voraussetzung für die Einrichtungen weitere virtueller Hosts sind:

  • eine funktionsfähige MAMP-Installation
  • Root-Rechte auf dem lokalen Rechner
  • ein Editor wie wie zum Beispiel TextMate
  • ein eigenes Projekt, für das der Host konfiguriert wird (optional)

Als erstes muss die Datei httpd.conf geöffnet werden, die sich bei einer MAMP-Installation im Ordner /Applications/MAMP/conf befindet. Mit dieser Datei wird der Apache-Server konfiguriert. Änderungen wirken sich dabei erst nach einem Neustart des Servers (nicht des Rechners!) aus.

Ganz am Ende der Datei steht: # NameVirtualHost *
Für unser Beispielprojekt entfernen wird das Kommentarzeichen und ergänzen die Datei noch, so dass sie folgendermaßen aussieht:

NameVirtualHost *
<VirtualHost *>
ServerName localhost
DocumentRoot /Applications/MAMP/htdocs
</VirtualHost>
<VirtualHost *>
ServerName beispielprojekt
DocumentRoot /Applications/MAMP/htdocs/beispielprojekt
</VirtualHost>

Damit der virtuelle Host auch gefunden wird, muss er zusätzlich noch in der Datei hosts Die sich im Ordner etc von Mac OS X befindet, eingetragen werden. Die Datei sollte dann so aussehen:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost
# VIRTUAL HOST START
127.0.0.1 beispielprojekt
# VIRTUAL HOST STOP

Vor dem obligatorischen Neustart des Webservers sollte dieser noch auf den Standardport 80 (sofern er nicht mit einem anderen lokalen Webservers kollidiert) geändert werden. In MAMP geschieht dies über die Einstellungen und den Button Standard Einstellungen für Apache und MySQL Ports:

MAMP Einstellungen


Vorausgesetzt, es existiert ein Ordner beispielprojekt im Verzeichnis htdocs von MAMP, so kann dieser jetzt direkt durch die Eingabe der URL http://beispielprojekt im Browser aufgerufen werden.

Kommentar verfassen