Von allen guten und bösen Geistern verlassen

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.

7 Kommentare

  1. Pingback: Blogrofon.de
  2. Einfacher ja, aber der Weg mit den virtuellen Hosts ist etwas egleganter, wie ich finde. Zudem: Auf einem echten Server kann man damit einer IP verschiedene Domains zuweisen :-)

  3. Hi

    ich habe eine frage du schreibst mann muss in der hosts eine eintrag machen nur leider folegndes Problem.

    1) ich komme nur über die Console an das Verzeichniss /etc und dan die datei

    2) ich habe scheinbar nicht das recht diese zu überschreibene … wie bekommeich die rechte?

    Danke

  4. Hallo Andreas!

    Am besten öffnest du die Datei mit einem Editor wie TextWrangler (kostenlos). Beim Speichern wirst du dann nach deinem Admin-Passwort gefragt. Nach korrekter Eingabe sollte die Datei auch gespeichert werden.

    1. @Dirk Einecke: Ich weiss, dass es MAMp-Pro gibt :-) Bisher hat mir aber die normale Version völlig gereicht (auch wenn ich sie wegen PHP 5.3 noch aufbohren muss). Das mit den virtuellen Host ist per Datei eigentlich auch recht schnell und einfach gemacht.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

DSGVO Cookie Consent mit Real Cookie Banner