How to get apache to serve a site via VirtualBox?
This tutorial taught me how to create an Ubuntu Server (12.10, 64-bit) VM in VirtualBox on a Windows 7 host machine, install Apache and have it serve a site from a dummy domain accessible via the host machine's browser.
It took a day and many attempts (although it seemed I was following the instructions as they were laid out, I was always doing something wrong) and I'd finally done it.
I find Ubuntu as a much seamless development environment than Windows, and so I wanted to same thing on Ubuntu. So, this time, I created an Ubuntu Server VM in VirtualBox on Ubuntu host machine, installed Apache and configured it. But when I access the site via the dummy domain, I get the 'Server not found' error.
Yes, I did modify the /etc/hosts
file just as mentioned in the tutorial (which is for Windows 7). But I couldn't get it to work. Don't know what's wrong. Anyone know what else I should be doing?
EDIT: If I am not clear enough, please ask. I am willing to clarify.
Solution 1:
If you need to allow other machines in your physical network reach your VM or if the VM needs Internet access, use bridged networking. Otherwise, stick to host-only networking.
Stop your VM and open the settings for it in the VirtualBox (OSE) Manager
Go to the Network tab
-
Select the network mode at your choice (bridged networking or host-only)
If you want to use bridged networking, you've to select the right network adapter at Name: ____________. For wired connections, you'd select something named like
eth0
. Wireless connections are usually namedwlan0
(the numbers may vary). Save the settings
Start the Ubuntu VM
-
When up, you can gather the IP address by running:
sudo ifconfig
The output should look similar to this:
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 the above output,
192.168.1.4
(on the second line) is the IP address that can be used in your Ubuntu host system to access your VM. -
Now open the hosts file in Ubuntu host machine:
sudo gedit /etc/hosts
(If you don't want to use
gedit
, replace the word with the name of your favorite editor. E.g.vim
,nano
.)Once the file is open, add this line, and save it:
192.168.1.4 my-dummy-site.com
Open any browser on your host machine and go to
my-dummy-site.com
to access your website, served right from VirtualBox.
( Special thanks to @iSeth for the help. Entirely based on this answer, bit is NOT the same. )