我正在遵循此guide来启动Laravel并在我的CentOS 7 VM上运行,并且已经进入步骤6- Composer设置。它说cd
进入“ Homestead”目录,然后运行vagrant up
,然后运行vagrant ssh
。
当前,当我运行vagrant up
时,出现错误消息:
C:/.../ psych.rb:377:在'parse':()中:在解析第13行第5列的块集合时未找到预期的'-'指示器(Psych :: SyntaxError)>
我遇到了this个问题,答案似乎表明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: ~/code
to: /home/vagrant/code
type: "nfs"
sites:
- map: homestead.test
to: /home/vagrant/code/public
- map homestead.app
to: /home/vagrant/Code/Laravel/public
databases:
- homestead
谁知道我为什么不能运行vagrant up
?我还能做些什么来解决这个问题?
修改
所以,我遇到了this的答案,看来这个问题并不是因为yaml文件中的任何地方都有双连字符,实际上是因为以连字符开头的几行下面是标签,而不是用空格隔开,我也缺少多行字符串指示器|
。
将yaml文件的相关部分更改为包括|
,并将选项卡更改为空格后,
未找到预期的'-'指示器
错误已解决:
folders:
- |
map: ~/code
to: /home/vagrant/code
type: "nfs"
sites:
- |
map: homestead.test
to: /home/vagrant/code/public
- |
map homestead.app
to: /home/vagrant/Code/Laravel/public
但是,当我现在尝试运行vagrant up
时,出现了另一个错误消息:
C:/ Users /.../ homestead.rb:213:in'[] =':字符串不匹配(IndexError)
我不明白此错误显示的内容,因为在yaml文件中的任何地方都看不到'[]=':
字符...有人有任何想法吗?
答案 0 :(得分:0)
您忘记在地图中homestead.app
之前的yaml文件中添加:(冒号)
这就是导致此错误的原因。这可能是较晚的响应,但通常在Homestead.ymal出现语法错误时,vagrant up
会因此类错误而失败。