Bagaimana cara mendapatkan apache untuk melayani situs melalui VirtualBox?

8

Tutorial ini mengajari saya cara membuat VM Ubuntu di Server VirtualBox (12.10, 64-bit) pada mesin host Windows 7 , instal Apache dan minta server itu melayani situs dari domain dummy yang dapat diakses melalui browser mesin host.

Butuh satu hari dan banyak upaya (walaupun sepertinya saya mengikuti instruksi ketika mereka diletakkan, saya selalu melakukan sesuatu yang salah) dan akhirnya saya melakukannya.

Saya menemukan Ubuntu sebagai lingkungan pengembangan yang jauh lebih mulus daripada Windows, jadi saya ingin hal yang sama di Ubuntu. Jadi, kali ini, saya membuat VM Server Ubuntu di VirtualBox pada mesin host Ubuntu , menginstal Apache dan mengkonfigurasinya. Tetapi ketika saya mengakses situs melalui domain dummy, saya mendapatkan kesalahan ' Server tidak ditemukan '.

Ya, saya memang memodifikasi /etc/hostsfile seperti yang disebutkan dalam tutorial (yang untuk Windows 7). Tetapi saya tidak bisa membuatnya bekerja. Tidak tahu apa yang salah. Adakah yang tahu apa lagi yang harus saya lakukan?

EDIT: Jika saya tidak cukup jelas, silakan tanyakan. Saya bersedia mengklarifikasi.

ini aku
sumber
Apakah Anda ingin menggunakan server dari komputer Anda (misalnya untuk mengembangkan) atau dari orang lain di jaringan?
Davisein
Server diinstal di mesin virtual (menggunakan virtualbox), dan saya ingin mengakses situs web pengujian yang dilayani oleh server dari browser di mesin host. Semoga itu jelas. Saya sudah memposting jawabannya (tetapi hanya bisa menandainya sebagai jawaban setelah 2 hari).
its_me
1
Tentu, saya sudah memutakhirkan jawaban Anda yang sangat bagus (btw). Saya hanya ingin menyarankan Anda untuk menambahkan host-only dan bridged (untuk akses internet). Dan juga jawaban lainnya adalah persyaratan dalam penghubung yang dijembatani jika Anda ingin mengakses VM dari luar. Untuk memperjelas pertanyaan bagi orang lain;)
Davisein

Jawaban:

5

Jika Anda perlu mengizinkan mesin lain di jaringan fisik Anda mencapai VM Anda atau jika VM membutuhkan akses Internet, gunakan jaringan yang terhubung. Jika tidak, tetap gunakan jaringan host-only.

  1. Hentikan VM Anda dan buka pengaturan untuk itu di VirtualBox (OSE) Manager

  2. Buka tab Jaringan

  3. Pilih mode jaringan sesuai pilihan Anda (menjembatani jaringan atau hanya host)

    Jika Anda ingin menggunakan jaringan penghubung, Anda harus memilih adaptor jaringan yang tepat di Name: ____________ . Untuk koneksi kabel, Anda akan memilih sesuatu yang bernama seperti eth0. Koneksi nirkabel biasanya dinamai wlan0(jumlahnya mungkin bervariasi).

  4. Simpan pengaturan

  5. Mulai VM Ubuntu

  6. Ketika naik, Anda dapat mengumpulkan alamat IP dengan menjalankan:

    sudo ifconfig
    

    Outputnya akan terlihat seperti ini:

    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)
    

    Dalam output di atas, 192.168.1.4(pada baris kedua) adalah alamat IP yang dapat digunakan di sistem host Ubuntu Anda untuk mengakses VM Anda.

  7. Sekarang buka file hosts di mesin host Ubuntu:

    sudo gedit /etc/hosts
    

    (Jika Anda tidak ingin menggunakan gedit, mengganti kata dengan nama editor favorit Anda. Misalnya vim, nano.)

    Setelah file terbuka, tambahkan baris ini, dan simpan :

    192.168.1.4   my-dummy-site.com
    
  8. Buka browser apa pun di mesin host Anda dan buka my-dummy-site.comuntuk mengakses situs web Anda, dilayani langsung dari VirtualBox.

(Terima kasih khusus kepada @ iSeth untuk bantuannya . Sepenuhnya berdasarkan pada jawaban ini , bit TIDAK sama.)

ini aku
sumber
1
Solusi ini seharusnya berhasil. Saya sedang mencoba server pengembangan dengan konfigurasi ini sekarang. Selain itu baik bridged dan host-only dapat digunakan pada saat yang sama. Bridged tidak mengizinkan mesin hosting untuk mencapai server Anda sendiri (sejauh yang saya tahu). Dan host-only tidak memungkinkan akses ke internet (jadi tidak ada pembaruan). Saya biasanya menggunakan keduanya
Davisein
1
@ Davidvisein Salah. Mode jaringan bridged memungkinkan mesin virtual Anda diakses dari mesin host, dan juga memberikannya (VM) akses ke koneksi Internet yang digunakan oleh host. :)
its_me
Benar. Saya tidak menghapus komentar saya sebelumnya sehingga Anda tidak terlihat aneh tapi itu salah. Sistem yang tidak memungkinkan hosting dan mesin tamu untuk berbicara adalah NAT seperti yang dikatakan di sini virtualbox.org/manual/ch06.html .
Davisein
Pastikan IPTables tidak memblokir koneksi ...
Ethereal
Saya mengikuti instruksi ini ke T. Jika saya membuka browser pada Ubuntu VM, ia dapat menyelesaikan dns dan melayani my-dummy-site.com. Namun, jika saya membuka browser di luar VM Ubuntu (pada mesin Windows 10 saya di mana saya menginstal VM saya), itu tidak dapat menyelesaikan my-dummy-site.com. Ia mampu menyelesaikan IP 192.168.1.118! Apa yang bisa menjadi masalah?
Chris Nielsen
0

Hanya rootdapat membuka port <1024, jadi jika pengguna biasa menjalankan VirtualBox itu tidak akan membuka port 80 pada Host dan meneruskannya ke Tamu.

Anda dapat mengizinkan program untuk membuka port istimewa dengan menjalankan:

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

Saya tidak tahu jalur ke VirtualBoxexecutable, tetapi Anda dapat dengan mudah mencari tahu mencari sesuatu yang mirip dengan "VirtualBox" di output ps auxf.

Eric Carvalho
sumber
Saya akan mencobanya dan memberi tahu Anda. Sementara itu, Anda mengatakan bahwa "Hanya root yang dapat membuka port <1024" , tapi saya masih bisa membuatnya berfungsi (lihat solusi saya di bawah).
its_me
@its_me itu karena solusi Anda memanfaatkan jaringan yang dijembatani.
Eric Carvalho
Ah, baiklah. Terima kasih atas klarifikasi Eric. :)
its_me