virtuelle Hosts von virtueller Maschine

H

heinetz

Aktives Mitglied
Thread Starter
Dabei seit
07.09.2007
Beiträge
695
Reaktionspunkte
13
Hallo Forum,

mit dieser Aufgabenstellung beschäftige ich mich irgendwie seitdem ich in lokalen Entwicklungsumgebungen PHP-Seiten baue und alle unterschiedlichen Lösungen sind seit jeher nicht besonders elegant.

Auf dem Macbook läuft ein Apache mit einigen (namebased) virtuellen Hosts (bspw. test.dev) und nun möchte ich http://test.dev mit dem Browser aufrufen. Die Alternative, statt alle vhosts und die /etc/hosts einzutragen ist in lokaler Nameserver, den man dann so konfiguriert, dass HTTP-Requests von *.dev nach 127.0.0.1 aufgelöst werden. Den lokalen BIND, der unter OS X Lion noch mit an Bord war zu konfigurieren, war für mich schon nicht so einfach. Ich hatte mir mit DNS-Enabler eine GUI gekauft, mit der sich der BIND konfigurieren liess. Im Moment setze ich gerade eine neue lokale Entwicklungsumgebung auf und dort habe ich statt dessen Dnsmasq ausprobiert, was mir für meine Zwecke schlanker und beherrschbarer erschien.

Bis hierher war's unproblematisch. Nun kommt aber erst die eigentliche Herausforderung:

Ich muss meine test.dev auch im Internet Explorer testen können. Der läuft unter bspw. Windows 7 in einer virtuellen Maschine
mit bspw. virtual box.

Grundsätzlich sollte das gehen, oder?


danke für Tips und

beste gruesse,
heinetz
 
Du müsstest die DNS Einstellungen in der VM einfach entsprechend auf den lokalen BIND des Macbooks setzen. Allerdings bekommst du vermutlich Probleme, wenn die Namen nach 127.0.0.1 aufgelöst werden. Denn für die VM ist das dann nicht das MacBook, sondern die VM selbst.
 
mit dieser Aufgabenstellung beschäftige ich mich irgendwie seitdem ich in lokalen Entwicklungsumgebungen PHP-Seiten baue und alle unterschiedlichen Lösungen sind seit jeher nicht besonders elegant.

Ich habe auch schon einiges ausprobiert, von portbasierten IPs bis .dev-Domains, aber richtig zufrieden war nie. Sowas wie 192.168.0.1:20208 ist sperrig und wird schnell unübersichtlich, domain.dev ist alles andere als komfortabel, wenn mehrere Geräte zum Testen benötigt werden.

Nun, seit ca. zwei Jahren habe ich einen vServer (für einen Zehner im Monat) gemietet und darüber laufen alle meine Tests und Kundenprojekte unter einer neutralen Domain, beispielsweise clientserver.com. Via ispconfig wird in kurzer Zeit eine Subdomain angelegt, dazu auch die passende DB und der FTP-Account, in max. 15 Minuten ist kunde1.clientserver.com startklar.

Das Thema vServer und Betriebssicherheit ist ein ganz anderes Thema und sollte nicht unterschätzt werden, ich will nur eine andere Perspektive aufzeigen. (Wenn man die ersten Hürden überwunden und sich eingearbeitet hat, hat man einen alltagstauglichen Workflow.)

Für Dein konkretes Anliegen könnte vielleicht folgendes helfen:
http://mayakron.altervista.org/wikibase/show.php?id=AcrylicHome
 
Mein aktuelles System läuft mit BIND und da habe ich's auch irgendwie hinbekommen. Das ist aber ziemlich abenteuerlich, läuft auch irgendwie nicht mehr und nun möchte ich das auf meinem neuen System mit OS X 10.11 sauber neu aufsetzen. Am liebsten mit Dnsmasq aber vor Allem so, dass ich's verstehe.

Grundsätzlich solle das gehen, ob es mit Dnsmasq geht und ob das sinnvoll ist, weiss ich aber nicht.

gruss,
heinetz
 
Wäre evtl. OS X Server noch eine Alternative?
 
Ich habe auch schon einiges ausprobiert, von portbasierten IPs bis .dev-Domains, aber richtig zufrieden war nie. Sowas wie 192.168.0.1:20208 ist sperrig und wird schnell unübersichtlich, domain.dev ist alles andere als komfortabel, wenn mehrere Geräte zum Testen benötigt werden.

Nun, seit ca. zwei Jahren habe ich einen vServer (für einen Zehner im Monat) gemietet und darüber laufen alle meine Tests und Kundenprojekte unter einer neutralen Domain, beispielsweise clientserver.com. Via ispconfig wird in kurzer Zeit eine Subdomain angelegt, dazu auch die passende DB und der FTP-Account, in max. 15 Minuten ist kunde1.clientserver.com startklar.

Das Thema vServer und Betriebssicherheit ist ein ganz anderes Thema und sollte nicht unterschätzt werden, ich will nur eine andere Perspektive aufzeigen. (Wenn man die ersten Hürden überwunden und sich eingearbeitet hat, hat man einen alltagstauglichen Workflow.)

Für Dein konkretes Anliegen könnte vielleicht folgendes helfen:
http://mayakron.altervista.org/wikibase/show.php?id=AcrylicHome


Warum ist domain.dev alles Andere als komfortabel? Ich arbeite seit Jahren damit und obwohl ich das alles zusätzlich auf einem vServer habe (um es dann nochmal von aussen testen zu können), entwickle ich lokal und möchte auf meiner lokalen Maschine mit einem anderen OS komfortabel testen können. Und ich bin überzeugt davon, dass das auch geht.

gruss,
heinetz
 
Unter Parallels kannst du für die virtuellen Maschinen eigene Netzwerkadapter einstellen, die dann auch eine eigene ip etc bekommen. So ist die VM auch für solche Zwecke wie ein physischer Rechner einsetzbar.
 
Code:
ifconfig en1 inet 10.0.0.1/24 add

Geht doch auch unter OSX. Keine Ports. Virtual hosts ohne Ende und aus der VM erreichbar.
 
  • Gefällt mir
Reaktionen: ProjectBuilder
Warum ist domain.dev alles Andere als komfortabel?

Zwar ein Hauptrechner zum entwickeln, aber wechselnde Geräte zum testen. Für mich war das nicht mehr komfortabel, mehr steckt hinter der Aussage nicht.
 
Unter Parallels kannst du für die virtuellen Maschinen eigene Netzwerkadapter einstellen, die dann auch eine eigene ip etc bekommen. So ist die VM auch für solche Zwecke wie ein physischer Rechner einsetzbar.

Ja, mit Parallels funktioniert meine jetzige Lösung auch:

Parallels hat bei der Installation eine Netzwerkschnittstellen Parallels Host-Guest angelegt, die ich in der Systemsteuerung sehe. Der habe ich die feste IP 10.1.1.2 gegeben und damit war mein localhost auch von Host und Guests über 10.1.1.2 erreichbar. ich habe im Host de 10.1.1.2 als DNS eingetragen und BIND *.dev nach 10.1.1.2 auflösen lassen. Das funktioniert obwohl ich zum Virtualisieren selbst garnicht Parallels sondern VMWare nutze.

... aber:

1. läuft es zur Zeit wieder nicht mehr und ich weiss nicht warum
2. weil ich es nicht wirklich verstanden hatte
3. erscheint mir das als Kanone für den Spatzen


Ich gehe davon aus, dass meine Aufgabenstellung garnicht so eine Herausforderung darstellt,
denn ich denke:

a) ohne die VM würde die Namensauflösung mit dem lokalen BIND funktionieren, wenn ich 127.0.0.1
als DNS eintragen und BIND *.dev nach 127.0.0.1 auflösen lassen würde.

ODER

b) das Macbook eine feste IP bspw. 192.168.1.7 hätte. Dann würde ich 192.168.1.7 als DNS eintragen
und BIND *.dev nach 192.168.1.7 auflösen lassen. In der VM würde ich dann 192.168.1.7 als DNS eintragen können.

Nun möchte ich das Ganze aber am liebsten mit Dnsmasq statt mit BIND machen und weiss nicht ob das auch geht.

gruss,
heinetz
 
Also wenn ich das alles lese ... das ist doch alles viel zu viel Aufwand und hört sich nach rumprobieren an.
Ich brauch doch keine Liste von VM's mit X IP Adressen um ein paar PHP Umgebungen zu haben.
Selbst das ganze virtualisieren mit OS Versionen und Webserver, Datenbank etc. würde mich nach einer Woche nerven.
Wenn Du sowieso weisst wie DNS funktioniert kannst du auch eben ein Zonefile anpassen.
Das kannst du doch auch alles im Internet haben ...
 
  • Gefällt mir
Reaktionen: entschleunigung
Ich habe den Eindruck, wir reden aneinander vorbei.
Ich habe einen einzigen Apachen mit einer PHP Umgebung auf meinem Macbook und will lediglich aus einer virtuellen Maschine per HTTP Seiten von eben dem Apachen anfordern können.

Leider weiss ich eben nicht wie DNS funktioniert. Deshalb muss ich mir ja für BIND 'ne GUI kaufen, um Zonenfiles anzulegen.

Code:
ifconfig en1 inet 10.0.0.1/24 add

Geht doch auch unter OSX. Keine Ports. Virtual hosts ohne Ende und aus der VM erreichbar.

Was genau macht denn das?
 
Wenn ich dein Problem richtig verstanden habe, dann sollte domain.dev eben nicht auf 127.0.0.1 zeigen sondern auf die interne IP deines MacBooks. Dafür bietet es sich an, diese IP statisch zu vergeben. Dnsmasq muss nun sowohl auf localhost als auch auf dem internen Interface lauschen. In der VM stellst du nun die IP-Adresse des MacBooks (auf der dann der Dnsmasq läuft) als DNS ein. Dann schickt der seine Anfragen nach Namensauflösung an das MacBook und kriegt dann für domain.dev die IP deines MacBooks zurück. Damit sollte der Zugriff dann funktionieren.
 
Exakt so würde es gehen wenn ich dem Netzwerkadapter (Wifi), mit dem im LAN bin, eine feste IP geben könnte. Das kann ich aber nicht. Daher bräuchte das Macbook eine zusätzliche (feste) IP, die von dem Macbook selbst (wie 127.0.0.1) und von einer virtuellen Maschine auf diesem Macbook erreichbar ist.
 
...warum nicht einfach

1. eine VM anlegen und deren virtuellen Netzwerkadapter auf 'Netzwerkbrücke' stellen, darin dann eine übliche LAMP-Installation unterbringen
2. den dhcp-Router im Heimnetz eine eigene LAN-Netzwerkadresse an die VM zuweisen lassen (gerne auch statisch)
3. in die /etc/hosts auf dem Mac (oder auf dem Router) die domains (die auf der VM gehostet werden sollen) zusammen mit der LAN-IP der VM eintragen
4. mehrere vhost in Apache (auf der vm) mit den jeweiligen domains anlegen

...oder hab' ich da was falsch verstanden? Wozu denn mit 'nem DNS rumhampeln?
 
Zuletzt bearbeitet:
Exakt so würde es gehen wenn ich dem Netzwerkadapter (Wifi), mit dem im LAN bin, eine feste IP geben könnte. Das kann ich aber nicht. Daher bräuchte das Macbook eine zusätzliche (feste) IP, die von dem Macbook selbst (wie 127.0.0.1) und von einer virtuellen Maschine auf diesem Macbook erreichbar ist.

Du kannst einem Netzwerk Interface so viele Adressen zuweisen wie Du möchtest.
Zusätzliche, zu denen die zum Beispiel DHCP vergibt.
Der Befehl dazu stand oben.

Man kann auf dem Mac sogar ein Virtuelles Interface anlegen und sich die Pakete an sein eigenes Programm schicken lassen.
Quasi als Software Netzwerktreiber.

Man kann auf der Kommandozeile eigentlich alles.
 
Das ist auch mit den Systemeinstellungen möglich. Einfach unten auf das Plus drücken, WLAN auswählen und eine feste IP Adresse zuweisen. Dafür braucht man das Terminal nicht.
 
Du kannst einem Netzwerk Interface so viele Adressen zuweisen wie Du möchtest.
Zusätzliche, zu denen die zum Beispiel DHCP vergibt.
Der Befehl dazu stand oben.

Man kann auf dem Mac sogar ein Virtuelles Interface anlegen

Ja, ich glaube, genau so einfach ist das. Ich habe ja im Moment eine Konstruktion, die (eigentlich) genau das leistet, was sie soll, nur das ich sie nicht wirklich verstehe. Wenn ich das richtig deute, habe ich mir mit Parallels einfach ein virtuelles Netzwerkinterface angelegt und dem die statische IP 10.1.1.2 gegeben. Die ist quasi eine alternative IP zu 127.0.0.1 mit dem Unterschied, dass sie vom virtuellen guest aus gesehen den virtuellen host anspricht.

gruss,
heinetz
 
Hallo Forum,

so, nun habe ich es endlich hinbekommen ... kann's noch garnicht wirklich glauben ... aber da das alles mit relativ wenig Aufwand funktioniert, schreib ich's mal für die Nachwelt auf ... und für mich, fall's ich das mal wieder vergessen sollte:

Hier steht genau, wie es geht:
http://fgnass.github.io/2013/02/26/wildcard-domains-on-osx.html

gruss,
heinetz
 
Ohne jetzt das Problem ganz genau durchdrungen zu haben.

Testen von Software bzw. Webseiten in verschiedenen Umgebungen kann man wohl sehr gut mit Docker.

Das kommt aus der Softwareentwicklungsecke und ist da wohl deutlich flexibler als mit (vielen) Virtuellen Maschinen zu arbeiten.
 
Zurück
Oben Unten