![如何让 apache 通过 VirtualBox 为网站提供服务?](https://linux22.com/image/1112887/%E5%A6%82%E4%BD%95%E8%AE%A9%20apache%20%E9%80%9A%E8%BF%87%20VirtualBox%20%E4%B8%BA%E7%BD%91%E7%AB%99%E6%8F%90%E4%BE%9B%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
本教程教我如何在 VirtualBox 上创建 Ubuntu Server(12.10,64 位)虚拟机Windows 7的主机,安装 Apache 并让其通过主机浏览器可访问的虚拟域提供站点服务。
经过一天的时间和多次尝试(尽管我似乎按照说明进行操作,但我总是做错事),我终于完成了。
我发现 Ubuntu 是一个比 Windows 更无缝的开发环境,所以我想在 Ubuntu 上做同样的事情。所以,这一次,我在 VirtualBox 上创建了一个 Ubuntu Server VMUbuntu主机,安装并配置了 Apache。但是当我通过虚拟域访问该网站时,我得到了“找不到服务器' 错误。
是的,我确实/etc/hosts
按照教程(适用于 Windows 7)。但我无法让它工作。不知道哪里出了问题。有人知道我还应该做什么吗?
编辑:如果我说得不够清楚,请询问。我愿意为您澄清。
答案1
如果您需要允许物理网络中的其他机器访问您的虚拟机,或者虚拟机需要互联网访问,请使用桥接网络。否则,请坚持使用仅主机网络。
停止虚拟机并在VirtualBox(OSE)管理器
前往网络标签
选择所需的网络模式(桥接网络或仅主机)
如果你想使用桥接网络,你必须选择正确的网络适配器姓名: ____________。对于有线连接,您可以选择类似 的名称
eth0
。无线连接通常有名称wlan0
(数字可能有所不同)。保存设置
启动 Ubuntu VM
启动后,您可以通过运行以下命令来收集 IP 地址:
sudo ifconfig
输出应类似于此:
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)
在上面的输出中,
192.168.1.4
(第二行)是可以在您的 Ubuntu 主机系统中用来访问您的 VM 的 IP 地址。现在打开主办方Ubuntu 主机中的文件:
sudo gedit /etc/hosts
(如果不想使用
gedit
,请将该词替换为您最喜欢的编辑器的名称。例如vim
,nano
。)打开文件后,添加此行,然后节省它:
192.168.1.4 my-dummy-site.com
打开主机上的任何浏览器并访问
my-dummy-site.com
您的网站,该网站直接由 VirtualBox 提供。
答案2
只能root
打开端口 <1024,因此如果普通用户正在运行 VirtualBox,它将不会在主机上打开端口 80 并将其转发给客户机。
您可以通过运行以下命令允许程序打开特权端口:
setcap 'cap_net_bind_service=+ep' /path/to/executable
我不知道可执行文件的路径VirtualBox
,但你可以通过在输出中搜索类似于“VirtualBox”的内容轻松找到它ps auxf
。