如何让 apache 通过 VirtualBox 为网站提供服务?

如何让 apache 通过 VirtualBox 为网站提供服务?

本教程教我如何在 VirtualBox 上创建 Ubuntu Server(12.10,64 位)虚拟机Windows 7的主机,安装 Apache 并让其通过主机浏览器可访问的虚拟域提供站点服务。

经过一天的时间和多次尝试(尽管我似乎按照说明进行操作,但我总是做错事),我终于完成了。

我发现 Ubuntu 是一个比 Windows 更无缝的开发环境,所以我想在 Ubuntu 上做同样的事情。所以,这一次,我在 VirtualBox 上创建了一个 Ubuntu Server VMUbuntu主机,安装并配置了 Apache。但是当我通过虚拟域访问该网站时,我得到了“找不到服务器' 错误。

是的,我确实/etc/hosts按照教程(适用于 Windows 7)。但我无法让它工作。不知道哪里出了问题。有人知道我还应该做什么吗?

编辑:如果我说得不够清楚,请询问。我愿意为您澄清。

答案1

如果您需要允许物理网络中的其他机器访问您的虚拟机,或者虚拟机需要互联网访问,请使用桥接网络。否则,请坚持使用仅主机网络。

  1. 停止虚拟机并在VirtualBox(OSE)管理器

  2. 前往网络标签

  3. 选择所需的网络模式(桥接网络或仅主机)

    如果你想使用桥接网络,你必须选择正确的网络适配器姓名: ____________。对于有线连接,您可以选择类似 的名称eth0。无线连接通常有名称wlan0(数字可能有所不同)。

  4. 保存设置

  5. 启动 Ubuntu VM

  6. 启动后,您可以通过运行以下命令来收集 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 地址。

  7. 现在打开主办方Ubuntu 主机中的文件:

    sudo gedit /etc/hosts
    

    (如果不想使用gedit,请将该词替换为您最喜欢的编辑器的名称。例如vimnano。)

    打开文件后,添加此行,然后节省它:

    192.168.1.4   my-dummy-site.com
    
  8. 打开主机上的任何浏览器并访问my-dummy-site.com您的网站,该网站直接由 VirtualBox 提供。

( 特别感谢@iSeth为了帮助. 完全基于这个答案,有点不一样。)

答案2

只能root打开端口 <1024,因此如果普通用户正在运行 VirtualBox,它将不会在主机上打开端口 80 并将其转发给客户机。

您可以通过运行以下命令允许程序打开特权端口:

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

我不知道可执行文件的路径VirtualBox,但你可以通过在输出中搜索类似于“VirtualBox”的内容轻松找到它ps auxf

相关内容