我有一个网站设置正常,但第二个无法远程访问:
我的YAML:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Projects
to: /home/vagrant/Projects
sites:
- map: app.app
to: /home/vagrant/sites/app1/public
- map: app2.app
to: /home/vagrant/sites/app2/public
port: 8100
ports:
- host: 81
- guest: 8100
我可以轻松使用我的IP访问第一个网站 - http://192.168.0.5/
但第二个网站无法共享同一个端口,因此我添加了81 -> 8100
。
当我试图重新配置我的宅基流浪盒时,它说: 本机的配置存在错误。请修理 出现以下错误并再试一次:
vm:
* Forwarded port definitions require a "host" and "guest" value
* Ports to forward must be 1 to 65535
* Ports to forward must be 1 to 65535
有什么想法吗?
答案 0 :(得分:4)
服务xip.io可以简化这项工作。方法如下:
举个例子,我有以下Homesite应用程序设置'rentmanager.test'。这是我在Homestead上配置的第一个应用程序,因此它是默认路由。要从我的本地网络访问它,我所要做的就是去:
http://rentmanager.test.192.168.5.124.xip.io:8000
'rentmanager.test'。是我在Homestead上的Laravel应用程序的名称,'192.166.5.124。是我在本地网络上的IP地址,'xip.io:8000'是重定向服务域,是在Homestead设置的默认路由之外访问应用程序(8000)所需的端口。
现在,这与您提供的第一个网站开箱即用,但如果我们有多个网站会发生什么?这需要更多的腿部工作。假设我们有一个名为'sitescanner.test'的第二个应用程序,我们想要访问它们。如果我尝试使用新的应用网址访问上面的相同网址,您会看到我仍然是第一个应用程序!让我们解决这个问题。
首先,您需要在hosts文件中添加其他规则。所以,假设我们的新应用程序名为'sitescanner.test':
# Vagrant Sites External Access
192.168.10.10 sitescanner.test.192.168.5.124.xip.io
一旦到位,我们就必须更新Homestead中的配置脚本以创建正确的虚拟主机条目,以便Homestead知道如何路由请求。为此,我们将编辑您的Homestead.yaml。在'sites:'指令下:
- map: sitescanner.test
to: /home/vagrant/Code/sitescanner/public
- map: sitescanner.test.192.168.5.124.xip.io
to: /home/vagrant/Code/sitescanner/public
一旦完成,只需“流浪汉停止”(如果它已经运行),然后“流浪汉 - 提供”并且您应该可以从
访问您的网站http://sitescanner.test.192.168.5.124.xip.io:8000
您网络上的任何地方!希望这可以帮助。
虽然我正在考虑这个问题,但最终还是要考虑这个配置:
答案 1 :(得分:3)
根据https://laravel.com/docs/5.4/homestead
上的文件添加多个网站时无需指定端口
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
- map: another.app
to: /home/vagrant/Code/another/public
然后将以下内容添加到您的主机文件
192.168.10.10 homestead.app
192.168.10.10 another.app
确保运行vagrant reload --provision
答案 2 :(得分:0)
我不知道您正在使用哪个版本的Laravel或Homestead,但这是可能的。有了为Laravel 5.6或5.7记录的Homestead版本,您已经完成了95%的工作。
port: 8100
中使用sites
来代替port: 81
的配置。guest
和host
代替send
和to
。除了这两个区别之外,我使用了与您完全相同的设置,并且对我有用。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Projects
to: /home/vagrant/Projects
sites:
- map: app.app
to: /home/vagrant/sites/app1/public
- map: app2.app
to: /home/vagrant/sites/app2/public
port: 81
ports:
- send: 8100
to: 81
如果您的主机文件中有http://app2.app:8100
的条目,则可以通过app2.app
访问应用程序;如果您不使用主机文件,则可以通过http://192.168.0.5:8100
访问应用程序。