我正在努力创建一个本地开发环境,以便我可以在我的网站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服务器所以不要认为它与之相关,只是为了让主机/远程服务器进行通信。
答案 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地址而不是使用主机的环回来访问访客。