header-bg.jpg
快速安装配置 Laravel Homestead 本地开发环境
发表于 2018-04-18 11:55
|
分类于 PHP
|
评论次数 0
|
阅读次数 2523

attachment/2018/04/18/78711524022353.png

一 序

Laravel Homestead 是一个打包好各种 Laravel 开发所需软件和工具(PHP, MySQL , PostgreSQL , Nginx , Node , Redis等等)的 Vagrant 盒子 , 而Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境 , 它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境 . 也就是说我们搭建Laravel Homestead , 需要安装一个VirtualBox软件用于创建虚拟的Linux系统 , 还需要安装一个Vagrant软件方便管理VritualBox , 其实说了这么多也就是3个东西 , 如果操作熟练的话 , 10分钟就能将环境搭建完成 .

二 下载安装Git , VritualBox 与 Vagrant

因为Vagrant命令需要在命令行中进行操作 , 所以我们需要先安装Git工具操作命令行 . 那么问题来了 : Windows自带的cmd也是命令行 , 为什么不用cmd呢 ? 答案是: 众所周知windows的很多命令和Linux的命令都是不同的 , 所以为了能在Windows上使用Linux的命令 , 我们就需要通过Git工具来完成 . 可以分别去它们的官网下载安装包 , 也可以去我的百度云备份地址一并下载

Git官网 : 曲境折跃

VritualBox官网 : 曲境折跃

Vagrant官网 : 曲境折跃

百度云传送门 : 曲境折跃

提取密码 : mrta

三 下载安装Homestead

第一种方式 : 在线安装(因为这种方式需要连接国外的资源 , 有可能需要翻墙 , 并且速度特别慢 , 所以不推荐这种方式)

在电脑任意一个文件夹或者桌面 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 然后在命令行输入以下命令开始在线安装

?
1
vagrant box add laravel/homestead
第二种方式 : 离线安装(这种方式需要先下载离线的homestead.box , 然后通过它进行离线安装 , 速度非常快 , 推荐使用)

homestead.box离线包百度云传送门 : 曲境折跃

提取密码 : xl0l

下载完成后 , 打开homestead.box所在文件夹 , 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 然后在命令行输入以下命令开始在线安装

四 下载安装Homestead管理脚本

进入任意一个文件夹 , 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 然后在命令行输入以下命令 , 克隆脚本至当前文件夹

克隆下来之后 , 继续分别输入以下命令(进入Homestead文件夹 , 切换master分支为稳定版本 , 并且生成Homestead.yaml文件)

?
1
2
3
cd Homestead
git checkout v7.3.0
./init.bat
如果是在线安装Homestead , 安装完成后Homestead是有当前版本号的 , 若离线安装Homestead则版本号为0 , 而Homestead每次启动时都会检查当前版本是否为最近版本 , 并且自动在线更新 , 还是那个原因 , 在线安装需要翻墙 , 并且非常慢 , 所以我们需要设置为不自动检查更新 , 操作非常简单 , 进入Homestead文件夹中的scripts文件夹 , 找到homestead.rb并使用编辑器打开 , 找到config.vm.box_version , 将该配置的版本号设为0即可
?
1
confg.vm.box_version = settings["version"] ||= ">= 0"
五 配置SSH秘钥 , 免密码登录

如果不配置SSH秘钥 , 那么每次连接虚拟机时都需要手动输入用户名和密码 , 这是非常麻烦的 , 如果是生产环境 , 这种方式还不安全

下面就开始配置SSH秘钥 , 进入电脑任意一个文件夹 , 点击鼠标右键 , 选择Git Bash Here , 即可打开命令行 , 在命令行中输入以下命令

?
1
cd ~/.ssh && ls
此命令是进入家目录中的.ssh并查看文件 , 如下图所示 , .ssh文件夹中只有一个known_hosts文件 , 如果存在id_rsa.pub 或 id_dsa.pub这2个文件 , 则代表秘钥已经生成,id_rsa.pub文件中存放的就是公钥 , 而当前并没有生成

继续输入以下命令 , 即可生成SSH秘钥文件

?
1
ssh-keygen -t rsa -C  "775126470@qq.com"
如下图所示 , 接着系统会提示你3个选项

1 确认路径,直接回车选择默认路径即可

2 不使用密码进行登录,直接回车

3 确认密码,直接回车

输入3次回车之后 , 接着输入 ls , 查看文件 , 如下图所示 , 秘钥已经生成了

生成秘钥后的下一步就是配置Homestead实现免密码登录了 , 进入Homestead文件夹 , 找到Homestead.yaml文件 , 并使用编辑器打开 , 修改keys属性中的内容为以下 :

1
2
3
keys:
    - ~/.ssh/id_rsa
    - ~/.ssh/id_rsa.pub
修改完之后 , 我们后面登录虚拟机 , 就可以免密登录啦

六 配置共享文件夹与域名

Homestead.yaml文件中的folders属性中列出了本地与Homestead虚拟机环境共享的文件

如下图所示 , 我设置了E盘中的myweb文件夹与虚拟机中的/home/vagrant/www文件夹同步


map就是本地的路径 , to就是虚拟机中的目录 , 这样设置之后 , 当我们修改虚拟机中的www文件夹中的信息 , 或者本地的MyWeb文件夹中的文件后 , 2个文件夹的文件都会保持同步更新

Homestead.yaml文件中的sites属性中列出了自定义域名与其对应的虚拟机中的文件夹

如下图所示 , 我分别设置了3个自定义域名 , v.com , t.com与s.com , 分别对应几个laravel或TP项目的入口文件 , 众所周知Laravel , TP框架的入口文件是public


这样配置好了之后 , 当我们启动虚拟机 , 用浏览器访问v.com的时候 , 就会访问虚拟机中的/home/vatrant/www/video/public文件 , 也就是该laravel项目的入口 , 因为配置了共享文件 , 所以当我们每次修改本地E盘中的MyWeb/Video中的代码时 , 都会自动同步到虚拟机中 , 同时刷新域名 , 即可看到修改代码的效果

当然 , 我们仅仅配置Homestead.yaml文件是不够的 , 要访问自定义域名必须还得修改HOSTS文件 , HOSTS文件的路径在C:\Windows\System32\drivers\etc里 , 将HOSTS文件拖至桌面打开并修改 , 修改完成后再拖回原位置 , 如下图所示 , 我配置了3个域名都对应192.168.10.10


192.168.10.10与Homestead.yaml中的ip属性相同 , 这是一个私有的ip , 只有本地能访问 , 配置完HOSTS文件就大功告成了 , 接下来就可以使用Vagrant启动虚拟机了

七 Vagrant命令

完成以上所有步骤后 , 进入Homestead文件夹 , 打开命令行 , 输入vagrant up启动虚拟机 , 然后在浏览器访问自定义的域名 , 即可访问相应项目 , 下面是一些常用的vagrant命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vagrant init      # 初始化
vagrant up        # 启动虚拟机
vagrant halt      # 关闭虚拟机
vagrant reload    # 重启虚拟机
vagrant ssh       # SSH 至虚拟机
vagrant suspend   # 挂起虚拟机
vagrant resume    # 唤醒虚拟机
vagrant status    # 查看虚拟机运行状态
vagrant destroy   # 销毁当前虚拟机
 
#box管理命令
vagrant box list    # 查看本地box列表
vagrant box add     # 添加box到列表
vagrant box remove  # 从box列表移除

还需要注意的一点是 , 当我们每次修改Homestead.yaml文件后 , 再次启动虚拟机 , 需要加上--provision选项 , 重新加载配置

vagrant up --provision

发布评论
还没有评论,快来抢沙发吧!