Homestead 多个站点无法正常工作
Homestead multiple sites not working
我是 laravel 的新手,运行ning homestead 在添加另一个网站之前我有一个网站不起作用。我摧毁了宅基地并再次开始并在 homestead.yaml 文件的站点部分添加了两个站点我的 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 文件的内容
有什么想法吗?
我想我需要 vagrant provision
命令来重新启动服务器并注册我所做的更改
所以一旦你完成 homestead.yaml
和 /etc/hosts
文件 运行 这个
vagrant provision
就像 here 所说的那样,您可以将 Homestead 直接安装到您的项目中,在您拥有的每个项目的根目录中使用此 composer require laravel/homestead --dev
来要求它。现在通过 make
命令你可以在项目的根目录中生成 Vagrantfile
和 Homestead.yaml
文件。
Mac/Linux:
php vendor/bin/homestead make
Windows:
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
里面有一个 Homestead.yaml
文件,但是 vagrant 首先去项目根目录里面的 .yaml
文件。在我的例子中,~/.homestead/Homestead.yaml
文件被忽略了。
您不能在文件上使用制表符,只能使用空格缩进,这将解决问题。
现在只有运行
vagrant reload --provision
重新加载配置文件。
注意:如果您使用 vagrant destroy 和 vagrant up,您将丢失 VM 上的所有内容。
我是 laravel 的新手,运行ning homestead 在添加另一个网站之前我有一个网站不起作用。我摧毁了宅基地并再次开始并在 homestead.yaml 文件的站点部分添加了两个站点我的 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 文件的内容
有什么想法吗?
我想我需要 vagrant provision
命令来重新启动服务器并注册我所做的更改
所以一旦你完成 homestead.yaml
和 /etc/hosts
文件 运行 这个
vagrant provision
就像 here 所说的那样,您可以将 Homestead 直接安装到您的项目中,在您拥有的每个项目的根目录中使用此 composer require laravel/homestead --dev
来要求它。现在通过 make
命令你可以在项目的根目录中生成 Vagrantfile
和 Homestead.yaml
文件。
Mac/Linux:
php vendor/bin/homestead make
Windows:
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
里面有一个 Homestead.yaml
文件,但是 vagrant 首先去项目根目录里面的 .yaml
文件。在我的例子中,~/.homestead/Homestead.yaml
文件被忽略了。
您不能在文件上使用制表符,只能使用空格缩进,这将解决问题。
现在只有运行
vagrant reload --provision
重新加载配置文件。
注意:如果您使用 vagrant destroy 和 vagrant up,您将丢失 VM 上的所有内容。