我正在尝试创建一个本地开发环境,以便我可以在我的网站 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/