我已经正确安装了Laravel Homestead,但现在我想添加一个额外的网站,我已经完成了文档中的每一步,编辑了我的Homestead.yaml
和我的hostfile
:
Homestead.yaml
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Projects
to: /home/vagrant/Projects
sites:
- map: scp.dev
to: /home/vagrant/Projects/scp
- map: katniss.dev
to: /home/vagrant/Projects/katniss
databases:
- scp
variables:
- key: APP_ENV
value: local
HOSTFILE
192.168.10.10 scp.dev
192.168.10.10 katniss.dev
但是当我运行vagrant provision
时,它会显示:
运行此操作需要Vagrant环境或目标计算机
命令。运行vagrant init
以创建新的Vagrant环境。要么,
从vagrant global-status
获取目标计算机的ID以运行
这个命令就开。最后一个选项是使用a更改为目录
Vagrantfile并再试一次。
我是否必须在特定文件夹上运行此命令?
答案 0 :(得分:8)
使用没有ID的vagrant provision
要求工作目录使用Vagrantfile
生成vagrant init
。因此,要使命令工作,您需要:
cd /directory/with/Vagrantfile
vagrant provision
如果要从系统中的任何位置运行命令,可以使用任何带有目标计算机的vagrant命令(例如up
,halt
,destroy
,{{ 1}})与该机器的ID。要获取可用的ID,请运行:
provision
然后:
vagrant global-status
有关详细信息,请查看Vagrant Global Status Docs。
答案 1 :(得分:1)
更简单的单命令解决方案!
我停止编辑homestead.yaml文件,因为和你一样,我很难接受更改。现在我只是从VM本身添加新站点。它非常简单,最好的部分是您不需要重新配置VM。
只需SSH进入您的Homestead框:
vagrant ssh
然后,使用以下命令:
serve domain.com ~/Code/project/public
显然将domain.com
替换为您想要访问该网站的域名,将~/Code/project/public
替换为项目公共目录的完整路径。
不要忘记编辑本地主机文件,添加domain.com
:
192.168.10.10 domain.com
完成此操作后,您的新网站现在可以通过domain.com
访问。
在较新版本的Homestead上,serve
命令可能不可用。您可以将其添加回Homestead/scripts/
目录,然后将serve-laravel.sh
文件复制到serve.sh
。
答案 2 :(得分:0)
我认为更简单的解决方案就是。
EPOCLAB:~Dev $ homestead停止 EPOCLAB:~Dev $ homestead up --provision
答案 3 :(得分:0)
您可以使用以下选项。
<强> homestead.yaml 强>
folders:
- map: ~/Projects/scp
to: /home/vagrant/Projects/scp
- map: ~/Projects/katniss
to: /home/vagrant/Projects/katniss
sites:
- map: scp.dev
to: /home/vagrant/Projects/scp
- map: katniss.dev
to: /home/vagrant/Projects/katniss
<强> HOSTFILE 强>
192.168.10.10 scp.dev
192.168.10.10 katniss.dev
假设你的宅基地已经停止,请按照命令运行。
homestead up --provision
尝试再次访问您的新网站。