介绍
这是一个美妙的开发环境,不需要在你的本地机器中安装PHP、web服务以及其他任何服务软件,完全在虚拟机中运行,不用再担心会搞乱你的操作系统!如果出了什么乱子,你可以在几分钟之内完全重建你的开发环境。
整套环境中包含以下软件,可以帮助你开发出惊人的软件(未完全列出):
- Ubuntu 16.04
- Git
- PHP 7.2
- Nginx
- MySQL
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
...
安装过程中会使用到:
- VirtualBox:一个免费的虚拟机运行软件
- Vagrant:使用简单的命令就能完成虚拟机搭建和管理的工具
- Vagrant box:可以理解为虚拟机安装时候使用的镜像
- Homestead:可以理解为这就是上面提到的简单的命令
- git:版本控制工具
第一步
安装VirtualBox以及Vagrant:
https://www.virtualbox.org/wiki/Downloads
![img_fe9a6d44feb94855ad658b920092b62c.png](https://yqfile.alicdn.com/img_fe9a6d44feb94855ad658b920092b62c.png?x-oss-process=image/resize,w_1400/format,webp)
https://www.vagrantup.com/downloads.html
![img_4cac36be0f8881e722b2387844c7fd78.png](https://yqfile.alicdn.com/img_4cac36be0f8881e722b2387844c7fd78.png?x-oss-process=image/resize,w_1400/format,webp)
选择最新的版本下载即可,以上两个软件下载之后都是简单的dmg安装包,安装完成之后进行下一步。
安装Homestead Vagrant Box
首先需要下载Vagrant box
使用终端运行:vagrant box add laravel/homestead
服务提供者选择:2
Last login: Wed Jun 13 09:08:45 on ttys000
fourn@mac:~$ vagrant box add laravel/homestead
==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.
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
box: Progress: 0% (Rate: 0*/s, Estimated time remaining: --:--:--)^C==> box: Waiting for cleanup before exiting...
到这里无论你是否科学上网都是没法下载的(国外的同学也许能行),但是我们可以在命令行中看到下载地址:
https://vagrantcloud.com/laravel/boxes/homestead/versions/6.1.0/providers/virtualbox.box
使用迅雷等工具下载:
![img_50c470df070f42cf3d68e592ee7336f5.png](https://yqfile.alicdn.com/img_50c470df070f42cf3d68e592ee7336f5.png?x-oss-process=image/resize,w_1400/format,webp)
建议将链接中的版本号下调一个,例如6.1.0修改为6.0.0,原因是在我下载过程中,老版本的下载速度总是更快些。
接下来,使用本地方式添加box,在终端运行:
vagrant box add laravel/homestead ~/Downloads/virtualbox.box
注意~/Downloads/virtualbox.box是你下载文件的摆放位置
需要几分钟的安装时间,安装成功之后还需要手动修改版本号
打开仿达,同时按下Command+Shift+G,前往下面这个位置:
~/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead
![img_db2fcae8b0ab9c36b33d7a20eaf72b46.png](https://yqfile.alicdn.com/img_db2fcae8b0ab9c36b33d7a20eaf72b46.png?x-oss-process=image/resize,w_1400/format,webp)
到这个目录下,首先会看到一个名为0.0
的文件夹,需要将名字改为你下载的box的版本号,例如6.0.0
然后,你还需要新建一个名为metadata_url
的文件,里面放上如下内容:
https://atlas.hashicorp.com/laravel/boxes/homestead
注意不要有任何空格
安装Homestead
你需要使用从版本库克隆的方式安装Homestead,在此之前先运行一下git命令,如果是第一次使用git的话,mac会提示你并自动完成安装。
接着运行以下命令,将Homestead安装到你的“home”目录下:
git clone https://github.com/laravel/homestead.git ~/Homestead
...中间过程省略
cd ~/Homestead
git checkout v7.1.2
v7.1.2是Homestead的版本号,我们可以前往GitHub Release Page查看最新的版本。
![img_6e7c8a2bb1a1ddef3ad1c585c2169cc5.png](https://yqfile.alicdn.com/img_6e7c8a2bb1a1ddef3ad1c585c2169cc5.png?x-oss-process=image/resize,w_1400/format,webp)
最新的版本总是比较稳定,但不一定适合所有的box,请按照自己在之前安装Vagrant和下载的virtualbox.box版本进行选择。如上图v7.7.0版本的Homestead可能就只适合6.0.0以上的virtualbox。
然后我们使用命令生成一个Homestead.yaml
配置文件,你的所有项目站点及数据库将会在这里进行配置。
cd ~/Homestead
bash init.sh
配置Homestead
使用文本编辑器打开上一个步骤中生成好的Homestead.yaml文件
配置ssh
这部分不需要对配置文件修改,关键是在启动之前,我们需要在主机上生成ssh key,使用如下命令:
ssh-keygen -t rsa
然后一路回车
配置共享目录
在Homestead.yaml文件中所列出你想要和Homestead环境共享目录,其中所有的文件都会在你的本机和虚拟环境中保持同步,你可以尽可能多的配置。
folders:
- map: ~/code
to: /home/vagrant/code
~/code
是本地的目录,如果不存在可以新建,我们用于存放所有的项目文件/home/vagrant/code
是Homestead虚拟机中的目录
配置站点
sites:
- map: wiki.local #维基
to: /home/vagrant/code/deepwiki
wiki.local
是将来浏览器中访问的地址/home/vagrant/code/deepwiki
是Homestead虚拟机中的该项目的入口目录
配置Hosts
修改/etc/hosts
文件:
192.168.10.10 wiki.local
使浏览器在访问本地项目地址时能够定位到Homestead
配置数据库
databases:
- book
- wx_pro
- wx_dev
这将在初始化的时候创建三个数据库,当然你也可以在虚拟机运行过程中自行创建数据库。
连接地址:127.0.0.1
端口号:33060(MySql)
默认账号密码:homestead / secret
启动Vagrant Box
一旦你认为你的Homestead.yaml已经配置好了,那么就到~/Homestead
目录下运行:
vagrant up
这将会启动虚拟机并自动完成所有的文件及站点配置
日常使用
首先在~/.bash_profile
文件(没有就创建)中添加:
function vag() {
( cd ~/Homestead && vagrant $* )
}
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
这样就可以很方便的运行vag up、vag ssh等命令。
- vag up:每次开机之后启动Homestead
- vag ssh:登入Homestead
- vag provision:重新应用配置
- vag halt:关闭Homestead
然后可以在~/.bashrc
文件(没有就创建)中添加:
alias hosts='sudo vim /etc/hosts'
alias sites='vim ~/Homestead/Homestead.yaml'
这样就可以快速的进行Homestead以及Hosts配置,方便今后新增站点。