【问题标题】:How to get a PHP-Laravel homestead vagrant box up?如何获得一个 PHP-Laravel 宅基地流浪者盒子?
【发布时间】:2019-08-22 22:11:48
【问题描述】:

我已经设置了一个 Virtualbox Ubuntu 并在上面安装了 Vagrant

apt-get install vagrant

,没有别的了。

据此:https://laravel.com/docs/5.8/homestead我试过了:

vagrant box add laravel/homestead

在这不起作用之后我用过:

git clone https://github.com/laravel/homestead.git ~/Homestead

bash init.sh

这似乎工作正常。
所以我进入了我的代码(和 Vagrant 文件)所在的文件夹并尝试了

vagrant box add

(因为我没有找到 .box 文件或类似的东西……我需要一个吗??)

现在我得到了错误:

消息:LoadError:无法加载此类文件 -- /media/sf_contractManager/project1/backend/vendor/laravel/homestead/scripts/homestead.rb

我在这里做错了什么?
据我了解 Vagrant 我应该从 Vagrant 盒子中获得一个完整的环境/虚拟机,还是?无需在 Vagrant box 内(或在 Virtualbox 级别外)安装 php、mysql 等。 这个对吗? 我怎样才能把 Vagrant 盒子拿出来?

【问题讨论】:

    标签: php laravel vagrant homestead


    【解决方案1】:

    所以我进入了我的代码所在的文件夹(以及 一个流浪文件)是并且刚刚尝试过

    vagrant box add
    

    (因为我没有找到 .box 文件或类似的东西...我需要吗? 一个??)

    您不需要这样做,因为您已经在上一步中添加了一个框。 Box 正在 Vagrant/VirtualBox 级别处理,而不是您的项目级别/Laravel 级别。

    层次结构

    VirtualBox
    |-Vagrant
      |-Vagrant box (environment for your project)
      | |-your project
      | |-another project
      |-another Vagrant box
        |-another project
    

    要提出问题,您必须转到 Homestead.yaml 所在的文件夹并运行 vagrant up

    记得在vagrant up之前运行init.sh

    无需在vagrant box内(或外)安装php、mysql等 在virtualbox级别)。这是正确的吗?

    You are right。但是您必须指定项目需要使用的所有“工具”。例如,某些 PHP/MySQL 版本。


    例如全新的安装方式(18.04本人测试):

    1. 使用首选方式(apt-get 或使用存档或其他方式)安装 VagrantVirtualBoxHow to install from .deb file。只是我的意见:获取源存档并手动安装。这样您就可以控制正在安装的软件的版本。你也会有一些经验。
    2. cd ~(转到主目录)
    3. vagrant box add laravel/homestead
    4. git clone https://github.com/laravel/homestead.git ~/Homestead
    5. cd ~/Homestead
    6. git checkout release
    7. bash init.sh./init.sh。确保 bash 脚本可执行。或使用
    sudo chmod +x init.sh
    

    使其可执行。

    1. Configure Homestead.yaml with providers you need
    2. vagrant up(在 Homestead 目录中)。
    3. 如果您的项目是一个网站,您可能希望从您的主机访问它。所以你必须用192.168.10.10 mywebiste.local 左右编辑/etc/hosts 文件。你可以在homestead.yaml找到IP。

    您可以在docs找到更多信息。

    【讨论】:

    • 啊,好吧,我认为“git clone github.com/laravel/homestead.git ~/Homestead”不是我需要的,因为现在我有两个文件夹,其中有一个 Homestead.yaml(带有代码的 projectDir repo 和 ~/Homestead)但是当我在我的项目目录中尝试“vagrant up”时,我得到了同样的错误“LoadError:无法加载这样的文件......”。如何在我的项目目录中调出 vagrant box?
    • 我建议您删除所有内容并从头开始。似乎您没有遵循文档中的所有步骤。也许你在运行一些命令时错过了文件夹。
    • 如果您使用的是 linux,您还需要编辑 /etc/hosts
    • @Indra 是的,如果您的 PHP 应用程序是一个网站并且您需要从主机访问。有时,例如,当您使用 CLI 包时,无需向hosts 添加任何内容。所以这是一个可选步骤。
    • Tarasovych 我想知道你是否可以看看我关于vagrant box update 是否会以某种方式删除我的 MySQL 数据库的问题? stackoverflow.com/q/60286908/470749
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多