macos - 访问本地 vagrant 虚拟机上托管的网站

标签 macos ubuntu vagrant

我正在尝试创建一个本地开发环境,以便我可以在我的网站 matthewfedak.co.uk 上工作。

我正在使用 vagrant 和 virtual box。

这是我的 Vagrant 文件:

Vagrant.configure("2") do |config|
    config.vm.box = "lucid32"
    config.vm.provision :shell, :path => "localhost.sh"
    config.vm.network :forwarded_port, host:4567, guest: 80
    config.vm.network :forwarded_port, host: 3306, guest: 3306   
    config.vm.synced_folder "/Users/mfedak/sites", "/var/www/vhosts", :owner => "www-data", :group => "www-data"
end

这是我的/etc/hosts 文件:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
#127.0.0.1      localhost
#255.255.255.255        broadcasthost
#::1            localhost
#fe80::1%lo0    localhost
127.0.0.1:4567  matthewfedak.co.uk
127.0.0.1:4567  www.matthewfedak.co.uk

这是我的/etc/apache2/sites-enabled/matthewfedak.co.uk 站点的虚拟主机

vagrant@lucid32:~$ sudo vim/etc/apache2/sites-enabled/matthewfedak.co.uk

<VirtualHost *:80>
        ServerAdmin <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e68f888089a68b8792928e8391808382878dc88589c8938d" rel="noreferrer noopener nofollow">[email protected]</a>
        ServerName matthewfedak.co.uk
        ServerAlias www.matthewfedak.co.uk
        DocumentRoot /var/www/vhosts/matthewfedak.co.uk/httpdocs/
        ErrorLog /var/www/vhosts/matthewfedak.co.uk/logs/error.log
        CustomLog /var/www/vhosts/matthewfedak.co.uk/logs/access.log combined
</VirtualHost>

这听起来很简单,但我现在已经厌倦了玩这个。我之前已经设置了很多 Ubuntu 服务器,所以不认为它与此有关,只是与让主机/远程进行通信有关。

最佳答案

默认情况下,Vagrant 使用 NAT 模式进行网络连接,如果您正在测试完整的堆栈,则需要大量端口映射。另外,由于VirtualBox的NAT模式的限制:

Forwarding host ports < 1024 impossible:

On Unix-based hosts (e.g. Linux, Solaris, Mac OS X) it is not possible to bind to ports below 1024 from applications that are not run by root. As a result, if you try to configure such a port forwarding, the VM will refuse to start.

这就是您在主机上使用端口 4567 的原因,对吧?

现在,根本原因位于您的 /etc/hosts

127.0.0.1:4567  matthewfedak.co.uk
127.0.0.1:4567  www.matthewfedak.co.uk

hosts 文件是一个简单的文本文件,它将 IP 地址与主机名关联起来,每个 IP 地址一行。它不适用于端口号。

要解决此问题,请考虑使用桥接模式或 vagrant 的 private network,以便您可以使用 IP 地址而不是使用主机的环回来访问 guest 。

关于macos - 访问本地 vagrant 虚拟机上托管的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17652377/

相关文章:

python - 无法使用样式设置背景颜色 ttk python os x

c# - MonoMac/Xamarin.Mac : EntryPointNotFoundException for AudioSession. 初始化()

iphone - 如何明确地为 CALayer 的背景颜色设置动画?

php - 在 Ubuntu 中调用未定义的函数 odbc_connect()

web-applications - Meteor 教程(特别是在 Ubuntu 上)

vagrant - 如何使用 VirtualBox 在 Vagrant 中创建具有两个 CPU 的虚拟机?

macos - 无法读取桌面: Operation not permitted ~ GIMP ~ Mac ~ MacBook ~ macOS Catalina的内容

ubuntu - nohup 命令在一段时间后停止

environment-variables - 如何使用 Vagrant Docker 提供程序的 env 属性?

vagrant - 由于 Windows 防火墙,Virtualbox 无法连接,Vagrant 无法启动