访问本地流浪者vm托管的网站

时间:2013-07-15 10:44:48

标签: macos ubuntu vagrant

我正在努力创建一个本地开发环境,以便我可以在我的网站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中该网站的vhost

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服务器所以不要认为它与之相关,只是为了让主机/远程服务器进行通信。

1 个答案:

答案 0 :(得分:2)

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

  

转发主机端口&lt; 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地址一行。它不适用于端口号。

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