我是laravel的新手,并且在运行宅基地之前我有一个站点,然后添加另一个站点无效。我摧毁了宅基地并再次启动并在homestead.yaml文件中的Sites部分添加了两个站点,我的homestead.yaml文件的蓝图在下面
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/laravel
to: /home/vagrant/laravel
sites:
- map: project1.dev
to: /home/vagrant/laravel/project1/public
- map: project2.dev
to: /home/vagrant/laravel/project2/public
databases:
- homestead
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 93000
# to: 9300
# - send: 7777
# to: 777
# protocol: udp
我在/etc/hosts
文件中添加了这两个网站,并且蓝图位于
#laravel maps
192.168.10.10 project1.dev
192.168.10.10 project2.dev
但是当我运行project1.dev或project2.dev时,它们都显示了project1.dev文件的内容
任何想法?
答案 0 :(得分:3)
我想我需要vagrant provision
命令来重启服务器并注册我所做的更改
所以一旦你完成了homestead.yaml
和/etc/hosts
文件,就运行这个
`vagrant provision`
答案 1 :(得分:1)
你不能在文件上使用标签,只使用空格来缩进,这样就可以解决问题。
现在,只运行
vagrant reload --provision
重新加载配置文件。
注意:如果您使用vagrant destroy和vagrant up,则会丢失VM上的所有内容。
答案 2 :(得分:0)
与here所说的一样,您可以将Homestead直接安装到您的项目中,在您拥有的每个项目的根目录下使用此composer require laravel/homestead --dev
来要求它。现在通过make
命令,您可以将Vagrantfile
和Homestead.yaml
文件生成到项目的根目录中。
Mac / Linux中
php vendor/bin/homestead make
视窗:
vendor\bin\homestead make
在每个项目根目录中,您将有一个Homestead.yaml
文件进行编辑:
项目-A
ip: "192.168.10.10"
...
folders:
- map: "~/Code/projecta"
to: "/home/vagrant/projecta"
sites:
- map: project.a
to: "/home/vagrant/projecta/public"
项目-B
ip: "192.168.10.11"
...
folders:
- map: "~/Code/projectb"
to: "/home/vagrant/projectb"
sites:
- map: project.b
to: "/home/vagrant/projectb/public"
将此添加到/etc/hosts
:
192.168.10.10 project.a
192.168.10.11 project.b
然后你必须cd到每个项目的根和vagrant up
。
现在,如果您从每个项目中vagrant ssh
,您将在VM环境中拥有该项目。
当然Homestead.yaml
内有一个~/.homestead
文件,但是vagrant会先找到位于项目根目录内的.yaml
文件。就我而言,~/.homestead/Homestead.yaml
文件被忽略。