我是 Laravel 的新手,在运行 Homestead 之前,我有一个网站,但添加了另一个网站却不起作用。我摧毁了 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 reload --provision
重新加载配置文件。
注意:如果您使用 vagrant destroy 和 vagrant up,您将丢失虚拟机上的所有内容。
我想我需要
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
,您的虚拟机环境中就会拥有该项目。
当然,
Homestead.yaml
内部有一个~/.homestead
文件,但vagrant首先会查找位于项目根目录内的.yaml
文件。就我而言,~/.homestead/Homestead.yaml
文件被忽略。
当我有超过 50 个左右的站点在 apache 下运行时,我在尝试配置时遇到了问题 - 由于添加每个站点后 apache 重新启动需要多长时间,该过程在某个时刻中止。
我的解决方法是执行以下操作:
复制 homestead.yaml
暂时删除 homestead.yaml 文件中发生故障的站点之前的所有站点。
以 root 身份在 /etc/apache2/sites-parked 创建一个新文件夹,并将 /etc/apache2/sites-enabled 中的所有链接移入其中:
sudo mkdir /etc/apache2/sites-parked; sudo mv /etc/apache2/sites-enabled/* /etc/apache2/sites-parked/; 退出
再次重新配置 vagrant,以引入所有带有 SSL 证书的新站点
假设这次一切顺利并且提供过程已完成,请返回并将您之前停放的站点链接移回正确的位置:
sudo mv /etc/apache2/sites-parked/* /etc/apache2/sites-enabled/; sudo apache2ctl restart;
恢复原始的完全配置的 homestead.yaml,以便下次需要时拥有这些设置。
我希望这对某人有帮助。