Wie kann man Apache dazu bringen, eine Site über VirtualBox bereitzustellen?

8

In diesem Tutorial habe ich gelernt, wie man eine Ubuntu Server (12.10, 64-Bit) -VM in VirtualBox auf einem Windows 7- Hostcomputer erstellt, Apache installiert und eine Site von einer Dummy-Domäne aus bedient, auf die über den Browser des Hostcomputers zugegriffen werden kann.

Es dauerte einen Tag und viele Versuche (obwohl es so schien, als würde ich den Anweisungen folgen, als sie angelegt wurden, machte ich immer etwas falsch) und ich hatte es endlich getan.

Ich finde Ubuntu als eine viel nahtlosere Entwicklungsumgebung als Windows, und deshalb wollte ich dasselbe unter Ubuntu. Dieses Mal habe ich eine Ubuntu Server-VM in VirtualBox auf einem Ubuntu- Hostcomputer erstellt, Apache installiert und konfiguriert. Wenn ich jedoch über die Dummy-Domäne auf die Site zugreife, wird der Fehler " Server nicht gefunden " angezeigt.

Ja, ich habe die /etc/hostsDatei wie im Tutorial (für Windows 7) beschrieben geändert . Aber ich konnte es nicht zum Laufen bringen. Ich weiß nicht, was los ist. Weiß jemand, was ich sonst noch tun soll?

EDIT: Wenn ich nicht klar genug bin, fragen Sie bitte. Ich bin bereit zu klären.

da ich bin
quelle
Möchten Sie den Server von Ihrem Computer (zum Beispiel zum Entwickeln) oder von anderen im Netzwerk verwenden?
Davisein
Der Server ist in einer virtuellen Maschine installiert (mithilfe von virtualbox), und ich möchte über einen Browser auf der Hostmaschine auf die vom Server bereitgestellte Testwebsite zugreifen. Hoffe das ist klar. Ich habe die Antwort übrigens gepostet (kann sie aber erst nach 2 Tagen als beantwortet markieren).
its_me
1
Klar, ich habe Ihre Antwort bereits positiv bewertet, was übrigens sehr gut ist. Ich wollte Ihnen nur empfehlen, sowohl Host-only als auch Bridged (für den Internetzugang) hinzuzufügen. Die andere Antwort ist eine Anforderung in einer überbrückten Umgebung, wenn Sie von außen auf die VM zugreifen möchten. Um die Frage für andere völlig klar zu machen;)
Davisein

Antworten:

5

Wenn Sie zulassen müssen, dass andere Computer in Ihrem physischen Netzwerk Ihre VM erreichen, oder wenn die VM einen Internetzugang benötigt, verwenden Sie Bridged Networking. Andernfalls bleiben Sie beim Nur-Host-Netzwerk.

  1. Stoppen Sie Ihre VM und öffnen Sie die Einstellungen dafür im VirtualBox (OSE) Manager

  2. Gehen Sie zur Registerkarte Netzwerk

  3. Wählen Sie den Netzwerkmodus Ihrer Wahl (Bridged Networking oder Nur Host).

    Wenn Sie Bridged Networking verwenden möchten, müssen Sie unter Name: ____________ den richtigen Netzwerkadapter auswählen . Für Kabelverbindungen wählen Sie einen Namen wie eth0. Drahtlose Verbindungen werden normalerweise benannt wlan0(die Nummern können variieren).

  4. Speichern Sie die Einstellungen

  5. Starten Sie die Ubuntu VM

  6. Wenn Sie aktiv sind, können Sie die IP-Adresse erfassen, indem Sie Folgendes ausführen:

    sudo ifconfig
    

    Die Ausgabe sollte ungefähr so ​​aussehen:

    eth0      Link encap:Ethernet  HWaddr 08:00:27:f4:c3:7b  
              inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::a00:27ff:fef4:c37b/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:20 errors:0 dropped:0 overruns:0 frame:0
              TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:3244 (3.2 KB)  TX bytes:2512 (2.5 KB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

    In der obigen Ausgabe 192.168.1.4(in der zweiten Zeile) ist die IP-Adresse angegeben, die in Ihrem Ubuntu-Hostsystem für den Zugriff auf Ihre VM verwendet werden kann.

  7. Öffnen Sie nun die Hosts- Datei auf dem Ubuntu-Host-Computer:

    sudo gedit /etc/hosts
    

    (Wenn Sie nicht verwenden möchten gedit, ersetzen Sie das Wort durch den Namen Ihres bevorzugten Editors. ZB vim, nano.)

    Wenn die Datei geöffnet ist, fügen Sie diese Zeile hinzu und speichern Sie sie:

    192.168.1.4   my-dummy-site.com
    
  8. Öffnen Sie einen beliebigen Browser auf Ihrem Host-Computer und rufen Sie my-dummy-site.comIhre Website auf, die direkt von VirtualBox aus bereitgestellt wird.

(Besonderer Dank geht an @iSeth für die Hilfe . Aufgrund dieser Antwort ist das Bit NICHT dasselbe.)

da ich bin
quelle
1
Diese Lösung sollte funktionieren. Ich versuche gerade einen Entwicklungsserver mit dieser Konfiguration. Zusätzlich können sowohl Bridged als auch Host-only gleichzeitig verwendet werden. Bridged erlaubt dem Hosting-Computer nicht, Ihren eigenen Server zu erreichen (soweit ich weiß). Und der Nur-Host erlaubt keinen Zugang zum Internet (also keine Updates). Ich benutze normalerweise beide
Davisein
1
@Davisein Falsch. Im Bridged-Netzwerkmodus können Sie vom Host-Computer aus auf Ihre virtuellen Maschinen zugreifen und gleichzeitig (VM) auf die vom Host verwendete Internetverbindung zugreifen. :)
its_me
Wahr. Ich lösche meinen vorherigen Kommentar nicht, damit dein Kommentar nicht sonderbar aussieht, aber er ist falsch. Das System, auf dem das Hosting und der Gastcomputer nicht kommunizieren können, ist NAT, wie hier angegeben . Virtualbox.org/manual/ch06.html .
Davisein
Stellen Sie sicher, dass IPTables die Verbindung nicht blockiert ...
Ethereal
Ich habe diese Anweisungen an ein T befolgt. Wenn ich einen Browser auf der Ubuntu-VM öffne, kann er die DNS auflösen und my-dummy-site.com bedienen. Wenn ich jedoch einen Browser außerhalb der Ubuntu-VM öffne (auf meinem Windows 10-Computer, auf dem meine VM installiert ist), kann my-dummy-site.com nicht aufgelöst werden. Es ist jedoch in der Lage, die IP 192.168.1.118 aufzulösen! Was könnte das Problem sein?
Chris Nielsen
0

Nur rootPorts <1024 können geöffnet werden. Wenn also ein normaler Benutzer VirtualBox ausführt, wird Port 80 auf dem Host nicht geöffnet und an den Gast weitergeleitet.

Sie können Programmen erlauben, privilegierte Ports zu öffnen, indem Sie Folgendes ausführen:

setcap 'cap_net_bind_service=+ep' /path/to/executable

Ich kenne den Pfad zur VirtualBoxausführbaren Datei nicht, aber Sie können leicht herausfinden, ob Sie in der Ausgabe von nach etwas ähnlichem wie "VirtualBox" suchen ps auxf.

Eric Carvalho
quelle
Ich werde es ausprobieren und dich wissen lassen. In der Zwischenzeit sagten Sie, dass "Nur Root Ports <1024 öffnen kann" , aber ich konnte es trotzdem zum Laufen bringen (siehe meine Lösung unten).
its_me
@its_me, weil Ihre Lösung Bridged Networking verwendet.
Eric Carvalho
Ah, okay. Danke für die Klarstellung Eric. :)
its_me