【问题标题】:Laravel HomesteadLaravel 宅基地
【发布时间】:2015-10-07 11:53:52
【问题描述】:

我正在尝试让 Laravel Homestead 启动并运行。我相信我按照手册所说的做了一切。当我运行 vagrant up -command 时,我在 OS X 10.9 上收到以下错误:

我的 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

【问题讨论】:

    标签: php laravel vagrant


    【解决方案1】:

    将您的 projects 目录映射到 /home/vagrant 以外的其他目录:

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

    这应该可以解决您的问题,并且您可能不希望您的 vagrant 配置文件(.ssh.bashrc 等)无论如何同步回您的本地 projects 目录。

    您的keys 属性也应设置为私钥,而不是公开的。

    【讨论】:

    • 这行得通。我首先不得不再次 vagrant destroyvagrant up 来解决这个问题。
    【解决方案2】:

    如果您再次查看原始 Homestead.yaml,您会看到:

    authorize 需要您的公钥 (id_rsa.pub)

    keys 需要你的私钥 (id_rsa)

    【讨论】:

      【解决方案3】:

      键应该是:

      键:- /Users/foo/.ssh/id_rsa 不是 键: - /Users/foo/.ssh/id_rsa.pub

      【讨论】:

        【解决方案4】:

        Homestead 只是 vagrant 的一个实现。

        试试:

        宅基地

        如果还是不行,试试

        宅基地摧毁 && 宅基地向上

        【讨论】:

          【解决方案5】:

          这里根据我自己的学习经验提出一点建议。 Homestead 为初学者提供了一种快速使用 Laravel 框架的好方法。但是,我认为流浪的设置和怪异的环境对我来说并不直接。

          我相信每个人最终都必须使用真实的 Server 和 Laravel 环境。因此,我决定放弃宅基地,干脆在 VirtualBox 上安装 Ubuntu。然后,我按照官方说明here 轻松安装了我的 Laravel。

          仅供参考。直接进入真正的 Laravel 系统而不是 Homestead。

          【讨论】:

            猜你喜欢
            • 2017-04-24
            • 2016-04-17
            • 2019-06-15
            • 2015-12-09
            • 2015-02-28
            • 1970-01-01
            • 2016-07-31
            • 2018-04-17
            • 1970-01-01
            相关资源
            最近更新 更多