Laravel Homestead

12

我正在尝试使用 Laravel Homestead 进行开发环境搭建。我相信我已经按照手册上的指示做了一切准备工作。但是,当我在 OS X 10.9 上运行 `vagrant up` 命令时,出现以下错误:

我的 Homestead.yaml 文件如下:

---
authorize: /Users/foo/.ssh/id_rsa.pub

keys:
    - /Users/foo/.ssh/id_rsa.pub

folders:
    - map: /Users/foo/projects
      to: /home/vagrant

sites:
    - map: site.dev
      to: /home/vagrant/site/public

执行 vagrant up 命令时,我得到了以下结果:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'laravel/homestead' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'laravel/homestead'
    default: URL: https://vagrantcloud.com/laravel/homestead
==> default: Adding box 'laravel/homestead' (v0.1.6) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/laravel/homestead/version/7/provider/virtualbox.box
==> default: Successfully added box 'laravel/homestead' (v0.1.6) for 'virtualbox'!
==> default: Importing base box 'laravel/homestead'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Setting the name of the VM: Homestead_default_1400312360757_29263
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 80 => 8000 (adapter 1)
    default: 3306 => 33060 (adapter 1)
    default: 5432 => 54320 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /Users/foo/Homestead
    default: /home/vagrant => /Users/foo/Projects
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: tee: 
==> default: /home/vagrant/.ssh/authorized_keys
==> default: : No such file or directory
==> default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkJjDXl7bdRlSQ453fsdOE7JZxk5x7b5XxeiQxS2Xitj1DiHTiVbNns71AflaNy+K2ev4SeazibpRrZnZ99Pnvd8XuJwScUZZzGaU/AsbQGDUNuQU4Wa047XhG28uHlfZNM/X3kMmsC73QtyByUDFadTAz2SjhwCBkatmpu8aSwOAtkNDTg+0QLql6yfIHaV5tn8DLBRhWWovpBcrU8aopG+7jgVpHghaIDq/1SmgclOt9paLZV333s9b8f/qCm4zc6sRFCvdKrIYgSutYnPTRkLRXm8ooX8/R6kvpxD6D6ss5e0+rDWgdxCthC2/pqWaZ/B76Pa7FXZlt9lDx7zAR foo@bar.com
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

chmod +x /tmp/vagrant-shell && /tmp/vagrant-shell "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkJjDXl7bdRlSQ453fsdOE7JZxk5x7b5XxeiQxS2Xitj1DiHTiVbNns71AflaNy+K2ev4SeazibpRrZnZ99Pnvd8XuJwScUZZzGaU/AsbQGDUNuQU4Wa047XhG28uHlfZNM/X3kMmsC73QtyByUDFadTAz2SjhwCBkatmpu8aSwOAtkNDTg+0QLql6yfIHaV5tn8DLBRhWWovpBcrU8aopG+7jgVpHghaIDq/1SmgclOt9paLZV333s9b8f/qCm4zc6sRFCvdKrIYgSutYnPTRkLRXm8ooX8/R6kvpxD6D6ss5e0+rDWgdxCthC2/pqWaZ/B76Pa7F5ZlX9lDx7zAR foo@bar.com
"

Stdout from the command:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkJjDXl7bdRlSQ453fsdOE7JZxk5x7b5XxeiQxS2Xitj1DiHTiVbNns71AflaNy+K2ev4SeazibpRrZnZ99Pnvd8XuJwScUZZzGaU/AsbQGDUNuQU4Wa047XhG28uHlfZNM/X3kMmsC73QtyByUDFadTAz2SjhwCBkatmpu8aSwOAtkNDTg+0QLql6yfIHaV5tn8DLBRhWWovpBcrU8aopG+7jgVpHghaIDq/1SmgclOt9paLZV333s9b8f/qCm4zc6sRFCvdKrIYgSutYnXTRkLRXm8oor8/R6kvpxD6D6sX5e0+rDWgdxCthC2/pqWaZ/B76Pa7F5Zlt9lDxXzAR foo@bar.com


Stderr from the command:

tee: /home/vagrant/.ssh/authorized_keys: No such file or directory
5个回答

31

将您的projects目录映射到其他位置,而不是/home/vagrant

folders:
- map: /Users/foo/projects
  to: /home/vagrant/projects

这应该能解决你的问题,而且你可能不希望将vagrant的配置文件(.ssh.bashrc等)同步回本地的projects目录中。

此外,你的keys属性应该设为私钥,而不是公钥。


3
这个方法有效。我首先需要运行 vagrant destroy 然后再次运行 vagrant up 来解决这个问题。 - Bradley Flood

2
如果您再次查看原始的 Homestead.yaml 文件,您会发现: authorize 需要您的公钥(id_rsa.pub) keys 需要您的私钥(id_rsa)

0

应该是这样的:

keys: - /Users/foo/.ssh/id_rsa 而不是 keys: - /Users/foo/.ssh/id_rsa.pub


0

Homestead只是Vagrant的一种实现。

尝试:

homestead up

如果仍然无法正常工作,请尝试:

homestead destroy && homestead up


0

根据我的学习经验,我有一个小建议。Homestead为初学者提供了一个不错的方式来快速使用Laravel框架进行开发。然而,我认为vagrant设置和奇怪的环境对我来说并不直观。

我相信每个人最终都必须与真实的服务器和Laravel环境一起工作。因此,我决定放弃homestead,只需在VirtualBox上安装Ubuntu。然后,我按照官方指南here轻松地安装了我的Laravel。

这只是提供给您的信息。直接进入真正的Laravel系统,而不是使用Homestead。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接