安装homestead在本地进行开发

创建于 10个月前 / 阅读数 158 / 工具


简介

Laravel 致力于使整个 PHP 开发体验变得愉快,包括您的本地开发环境。Vagrant提供了一种简单,优雅的方式来管理和配置虚拟机。

Laravel Homestead 是一个官方的,预先打包的 Vagrant 盒子,为您提供了一个美妙的开发环境,无需在本地计算机上安装 PHP,Web 服务器和任何其他服务器软件。不用再担心搞乱你的操作系统了!Vagrant 盒子完全是一次性的。如果出现问题,你可以在几分钟内销毁并重新创建盒子!

Homestead 可在任何 Windows,Mac 或 Linux 系统上运行,包括 Nginx Web 服务器,PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6,MySQL,PostgreSQL,Redis,Memcached,Node 以及您需要的所有其他好东西开发惊人的 Laravel 应用程序。

准备

这里以 window 为例进行说明

软件准备

  1. Virtual Box
    官网地址:Click me
  2. Vagrant
    官网地址:Click me

说明:建议下载最新版本

Homestead Vagrant Box

通过以下两种方式进行添加

方式一

直接添加

$ vagrant box add laravel/homestead
...
1) parallels
2) virtualbox
3) vmware_desktop

Enter your choice: 2
==> box: Adding box 'laravel/homestead' (v6.1.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/6.1.0/providers/virtualbox.box
...

说明:建议找个好的梯子

方式二

使用阿里云等云服务器,进入根目录下的 selslim 个人目录复制下载链接在阿里云中下载, 最后使用 ftp 拉取到本地

$ cd /selslim
$ wget -c https://vagrantcloud.com/laravel/boxes/homestead/versions/6.1.0/providers/virtualbox.box

说明:ftp 拉取速度取决于你服务器的带宽,当然无论如何也是快很多的

添加 box

假设使用 ftp 下载到 F:/virtualbox_6.1.0.box

$ vagrant box add laravel/homestead file:///F:/virtualbox_6.1.0.box
 box: Progress: 100% (Rate: 116M/s)
==> box: Successfully added box 'laravel/homestead' (v0) for 'virtualbox'!

查看当前 box

$ vagrant box list
laravel/homestead (virtualbox, 6.1.0)

删除当前 box

$ vagrant box remove laravel/homestead
Removing box 'laravel/homestead' (v6.1.0) with provider 'virtualbox'...

安装 Homestead

$ cd E:/Code
$ git clone https://github.com/laravel/homestead.git ./Homestead

说明:因为 Homestead 的 master 分支并不是稳定分支,你应该使用打过标签的稳定版本

截止 2018 / 06 / 06 标签为 v7.7.0 稳定版本

$ cd Homestead

E:\Code\Homestead (master)
$ git checkout v7.7.0
Note: checking out 'v7.7.0'.
...
HEAD is now at 4895d02... 💎 🔖 Tagging v7.7.0

创建配置

Mac / Linux

$ bash init.sh

Windows

$ init.bat
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
Homestead initialized!

说明:Homestead 目录生成 Homestead.yaml 配置文件

配置解析

// 配置 hosts 用的 ip 地址
ip: "192.168.10.10"
memory: 2048
cpus: 1

// 使用哪一个 Vagrant 提供器
// virtualbox / vmware_fusion / vmware_workstation 
// parallels / hyperv
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

// 所有与 Homestead 环境共享的文件夹
// 保持本地机器与 Homestead 环境之间同步
folders:
    - map: ~/code
      to: /home/vagrant/code

// 配置 Nginx 站点
// 映射一个域名到一个文件夹
// vagrant reload --provision 更新虚拟机上的 Nginx 配置
sites:
    - map: homestead.test
      to: /home/vagrant/code/public
// 添加一个
    - map: 51.app
      to:  /home/vagrant/code/Laravel51/public
databases:
    - homestead

注意:修改配置后需要使用下面命令销毁重建

$ vagrant reload --provision

启动

$ cd Homestead
$ vagrant up
Bringing machine 'homestead-7' up with 'virtualbox' provider...
...

说明:只需在 Homestead.yaml 的目录下启动

连接

连接至 homestead

$ vagrant ssh

说明:由于进行了目录映射,本地 Code 目录对应虚拟机 code 目录

关闭

$ vagrant halt
==> code: Attempting graceful shutdown of VM...