Laravel设置-运行无业游民给出解析错误'[] =':字符串不匹配

时间:2018-08-29 09:45:20

标签: laravel vagrant yaml

我正在遵循此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文件中的任何地方都看不到'[]=':字符...有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您忘记在地图中homestead.app之前的yaml文件中添加:(冒号)

这就是导致此错误的原因。这可能是较晚的响应,但通常在Homestead.ymal出现语法错误时,vagrant up会因此类错误而失败。