Aloha, Christoph!
- Ein DNS-Name, der auf deinen Server zeigt - simplerweise in der Datei "hosts".
nicht _zwingend_ erforderlich, aber dringlich empfohlen ;-)
Für Virtuelle Hosts, die nicht auf verschiedenen IP-Adressen desselben Interfaces basieren (ich hätte Probleme, _das_ unter Windows hinzukriegen) ist ein DNS-Eintrag zwingend erforderlich. Sonst kann der Server die einzelnen Hosts nicht unterscheiden, und man müsste in der Tat auf die Multi-Port-Lösung ausweichen, was eine hohe Merkfähigkeit für die Portnummern voraussetzt und die Situation unnötig verkompliziert.
127.0.0.1 projekt1.test
127.0.0.1 projekt2.test
hm. Über die Verwendung der loopback-Adresse für virtualhosts haben wir bereits gelegentlich diskutiert. Es ist nicht prinzipiell falsch oder gar schädlich, ich neige dennoch aus Gründen der "Sauberkeit" (doofes Wort, mir fällt aber grade kein besseres ein) dazu, von der Verwendung der loopback-Adresse eindringlich abzuraten. Man hat ja genügend "private IP's" zur Verfügung und kann die 127 getrost außen vor lassen.
Natürlich hat man im Prinzip reichlich Auswahl. Allerdings muss die verwendete IP-Adresse einem lokalen Netzwerkgerät gehören - also muss irgendwie eine aktive Netzwerkkarte konfiguriert sein. Fehlt solch eine Karte, hat man ein Problem, unnötigen Konfigurationsaufwand und mehr Trouble, als notwendig wäre, um die Aufgabe auf dem schnellsten Weg zu lösen. Existiert hingegen ein privates Netzwerk, kann man natürlich generell verfügbare IP-Adressen verwenden und die Hosts-Datei dann schlicht zwischen allen Maschinen kopieren.
Gegen die IP-Adresse des Loopback-Devices ist nichts einzuwenden - lediglich das Kopieren der Hosts-Datei wird dadurch erschwert. Das interne Routing lenkt aber ohnehin jeden Zugriff auf eine lokale IP-Adresse nach 127.0.0.1 um - für einen Testrechner ist das vollkommen Banane, egal und gleichgültig, Hauptsache, es funktioniert (was es ja tut).
PS: Demoeintrag für einen Virtuellen Host:
<VirtualHost *>
ServerName projekt1.test
DocumentRoot /pfad/zu/projekt1
ErrorLog /pfad/zum/errorlog/für/projekt1
CustomLog /pfad/zum/accesslog/für/projekt1 combined
</VirtualHost>
Das kann funktionieren. Nach meiner bisherigen Erfahrung ist das Konzept der "namenbasierten virtualhosts" aber zuverlässiger. Also ungefähr in dieser Form:
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName projekt1.test
DocumentRoot /pfad/zu/projekt1
ErrorLog /pfad/zum/errorlog/für/projekt1
CustomLog /pfad/zum/accesslog/für/projekt1 combined
</VirtualHost>
das hat den Vorteil, daß man auf dieselbe "private" IP mehrere virtuelle hosts setzen kann.
Ähm, ich hab sowohl mit der einen als auch mit der anderen Methode mehrere virtuelle Hosts auf einer IP-Adresse sitzen. Was außerhalb der VirtualHost-Direktive noch dafür sorgt, dass das eine oder andere funktioniert, kann ich spontan nicht sagen, dazu müsste ich Dokus nachlesen. Jedenfalls geht beides.
- Sven Rautenberg