虚拟开发环境:homestead的安装

简介

Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。
Laravel Homestead 是一个官方预封装的 Vagrant Box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP 、web 服务器或任何服务软件。 Vagrant Box 是完全一次性的,不用担心会搞乱你的操作系统!如果有什么地方出错了,你可以在几分钟内销毁并重建该 Box !
Homestead 可以在任何 Windows、Mac 或 Linux 系统上运行,它包括了 Nginx Web 服务器、PHP、MySQL、PostgresSQL、Redis、Memcached、Node
内置软件
Ubuntu 16.04
Git
PHP
Nginx
MySQL
MariaDB
Sqlite3
Postgres
Composer
Node (带有 Yarn、Bower、Grunt 和 Gulp)
Redis
Memcached
Beanstalkd
Mailhog
ngrok

安装与设置

  1. 需要预安装什么东西呢

    • virtualbox

    • vagrant

      Fh4b9eCWhQSPfBwWFILw5FVCndvilWVjaZTRMLzr.png

    • homestead box

    • git bash

  2. 将homestead box添加到 vagrant 中

vagrant box add laravel/homestead

因为下载速度的问题,推荐先将homestead box下载下来,然后vagrant box add laravel/homestead *your-box-address下载地址
vagrant box add laravel/homestead /f/vagrantboxs/homesteadv520.box
获取下载地址:vagrant box add laravel/homestead 命令会出现官方下载地址

完成后,你会发现自己的用户文件夹里多出了一个名为.vagrant.d的文件夹,
C:\Users\MyUserName\vagrant.d 我们打开这个文件夹,找到以下路径(请将MyUserName替换成你的系统用户名),将文件夹中名为0的文件夹改名为我们下载的Homestead的版本号,即5.2.0,然后在该文件夹下新建一个叫metadata_url的空白文件 (注意不要有任何文件名后缀,如果你的系统设置了自动隐藏后缀名,请将隐藏去掉,确认文件无任何后缀):文件的内容里,添加以下链接:https://app.vagrantup.com/laravel/boxes/homestead

创建多个homestead

3.安装homestead

cd ~/vagrant_repo/
git clone https://github.com/laravel/homestead.git homestead
cd homestead

初始化

// Mac / Linux...
bash init.sh
// Windows...
init.bat

启动

vagrant up

连接ssh

vagrant ssh

新建new homestead

 // new folder :vagrant init laravel/homestead
git clone https://github.com/laravel/homestead.git homestead
cd homestead
vagrant init laravel/homestead

vagrant box list 如果有多个名称一样(laravel/homestead)版本不一样的box.可以指定version,在composer.json
中加入
"versions": {
        "version": "6.1.0",
  },
因为默认使用homestead-7的用户名,会重复报错,修改方式:vim ./scripts/homestead.rb,修改所有homestead-7
众所周知,vagrant添加box的时候要从外网下载,那速度、、、(说多了都是泪),所以只好用下载工具下载到本地之后再添加。
一般处理方案
vagrant box add boxName ./downloadBoxName.box
boxName 添加之后的box 名称
./downloadBoxName.box 下载到本地的box
正常这样基本上就可以将box添加上去了。不过,这样添加的box版本号是0,大部分场景版本号影响也不大。但我在使用Laravel  Homestead的时候,这边会有版本等一些限制。所以,我们如果能加上版本号是不是会更好一些呢。

带版本号的添加方案
metadata.json
{
    "name": "laravel/homestead",  # 添加后的box名称
    "versions": [{
        "version": "2.1.0", # 版本号
        "providers": [{
            "name": "virtualbox",
            "url": "file://E:/xunlei/Laravel-Homestead.box"  # 下载到本地的box
        }]
    }]
}

执行以下命令

vagrant box add metadata.json

vagrant 本地添加box 支持带版本号

QAQ:

搬地方,windows,ipconfig:ip 为192.168.10.0,vagrant 重启失败~~
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.
A:更改homestead.yaml 的ip:193.168.10.10
vagrant reload --provision出现异常:
 Inserting generated public key within guest...
F:/ashesoft/vagrant/embedded/gems/2.1.1/gems/vagrant-2.1.1/plugins/communicators                            /ssh/communicator.rb:193:in `initialize': Permission denied @ rb_sysopen - F:/vi                            rtualmachine/homestead/.vagrant/machines/homestead-7/virtualbox/private_key (Err                            no::EACCES)
A: private_key  private_key ;所以 修改当前账户拥有所有权

你可能感兴趣的:(虚拟开发环境:homestead的安装)