2

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

我正在使用无业游民和虚拟盒子。

这是我的流浪文件:

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 info@matthewfedak.co.uk
        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 服务器,所以不要认为它与此有关,只是为了让主机/远程进行通信。

4

1 回答 1

2

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

转发主机端口 < 1024 不可能:

在基于 Unix 的主机(例如 Linux、Solaris、Mac OS X)上,无法从非 root 运行的应用程序绑定到低于 1024 的端口。因此,如果您尝试配置这样的端口转发,VM 将拒绝启动。

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

现在,根本原因在你/etc/hosts

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

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

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

于 2013-07-15T23:28:22.170 回答