未能启动 Homestead Vagrant Box

Posted

技术标签:

【中文标题】未能启动 Homestead Vagrant Box【英文标题】:Failure to launch Homestead Vagrant Box 【发布时间】:2016-11-19 01:31:56 【问题描述】:

我正在关注Laravel Tutorial,它指示我安装宅基地流浪者盒子;我被困在作曲家部分。

我使用 Ubuntu 14.04 LTS(64 位)并通过 virtualbox 5.0.24r108355 (amd64) 运行 Vagrant。显然 Homestead 与 virtualbox 5.1 有冲突。

我对 Homestead 的理解是它会设置

Ubuntu 16.04
Git
php 7.0
HHVM
nginx
mysql
MariaDB
Sqlite3
Postgres
Composer
Node (With PM2, Bower, Grunt, and Gulp)
Redis
Memcached
Beanstalkd

以下部分证实了这一点:16.04 LTS 安装。

yhk@home:~/Homestead$ vagrant ssh
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64)
* Documentation:  https://help.ubuntu.com/
Last login: Fri Jul 15 13:20:08 2016 from 10.0.2.2

但是,当我尝试vagrant up 时,它失败了。显然,我已经在使用作曲家了。我该如何继续修复这个故障并让 vagrant 正常运行?

yhk@home:~/Homestead$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
yhk@home:~/Homestead$ vagrant provision
==> default: Running provisioner: file...
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Running provisioner: shell...
    default: Running: /tmp/vagrant-shell20160715-14549-1a6hi0t.sh
==> default: Running provisioner: shell...
    default: Running: script: Creating Site: homestead.app
==> default: Running provisioner: shell...
    default: Running: script: Restarting Nginx
==> default: Running provisioner: shell...
    default: Running: script: Creating MySQL Database
==> default: Running provisioner: shell...
    default: Running: script: Creating Postgres Database
==> default: Running provisioner: shell...
    default: Running: script: Clear Variables
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: You are already using composer version 1.1.3 (stable channel).
==> default: Running provisioner: shell...
    default: Running: /tmp/vagrant-shell20160715-14549-l87w5y.sh

我认为设置正确...

yhk@home:~/Homestead$ ls
CHANGELOG.md   composer.lock  init.bat  LICENSE.txt  scripts  Vagrantfile
composer.json  homestead      init.sh   readme.md    src

yhk@home:~/.homestead$ ls
after.sh  aliases  Homestead.yaml  Homestead.yaml~

再一次,我该如何继续解决 composer 问题并让 vagrant 启动并运行?

【问题讨论】:

我认为您对 composer 没有意见。供应商运行并得出结论,不需要对该软件进行任何更改。除非你在某处有错误。 在我看来,您可以将vagrant ssh 发送到该框内,就好像它实际上已经启动并运行一样。除了因为你已经是最新的而没有运行作曲家更新之外,是什么让你认为它不是? 啊-也许我只是迷失在流浪者/宅基地的运作方式。当我使用 anaconda 3 时,我可以从提示符中判断我所处的环境。我可以用vagrant ssh 看到这一点,但vagrant up 没有。 我的后续问题是 - ~/Homestead 到底是做什么的?我是否必须在此目录中创建所有项目?我不能在(比如说)~/repository/php/ 中创建项目吗?我问的原因是vagrant up 似乎在其他地方不起作用。 composer require laravel/homestead --dev~/repository/php 中不起作用,表示找不到命令作曲家。 composer require laravel/homestead --dev yhk@home:~/repository/php$ vagrant up 表示“运行此命令需要 Vagrant 环境或目标机器。运行 vagrant init 以创建新的 Vagrant 环境。或者,从 @987654337 获取目标机器的 ID @ 运行这个命令。最后一个选择是切换到一个带有 Vagrantfile 的目录,然后再试一次。 yhk@home:~/repository/php$ composer require laravel/homestead --dev "没有找到命令'composer',你的意思是:来自包'mime-support'的命令'compose' (main) composer: command not found" 【参考方案1】:

您是否尝试过使用 sudo 权限运行 vagrant? cd 到 Homestead 文件夹并执行

sudo vagrant up

然后查看错误是否仍然存在。有时这是与权限相关的问题。

【讨论】:

使用sudo 运行 Vagrant 会使您的权限问题变得更糟,而不是更好。 我有一个类似的情况,vagrant 可以在我的机器上运行的唯一方法是使用 sudo。我只是说试试看(笑)....

以上是关于未能启动 Homestead Vagrant Box的主要内容,如果未能解决你的问题,请参考以下文章

练习Laravel Homestead的安装

homestead环境搭建遇到的问题

处理 vagrant Homestead 响应慢小记

什么是Vagrant Homestead root密码?

vagrant nuxt vue 开发

vagrant nuxt vue 开发