安装 VirtualBox
安装 Vagrant
- 一个建立虚拟机的软件
- 使用它建立 Homestead 虚拟机
使用 Vagrant 增长封装包(Homestead box)
vagrant box add laravel/homestead
- 建立了一个 laravel/homestead 虚拟机盒子
- 一个集成了(Nginx,PHP,MySQL,Postgres,Redis,Memcached)的虚拟机
安装和使用 Homestead (管理脚本)
git clone https://github.com/laravel/homestead.git Homestead
- 一个使用 Ruby 和 Shell 写成的脚本
- 从
~/Homestead/Homestead.yaml
读取配置信息,在 provision 时解析为 Vagrant 命令,以此进行对虚拟机的配置
初始化配置文件
- 建立
Homestead.yaml
配置文件
- linux:
bash init.sh
- windows:
./init.sh
配置 Homestead.yaml
- 虚拟机设置
- SSH 密钥登录配置
- authorize
- keys (数组选项,填写本机的 SSH 私钥文件地址)
- 共享文件夹配置
- folders (将本机上的文件夹映射到虚拟机)
- map (对应本机文件夹)
- to (对应 Homestead 上的文件夹)
- 站点配置
- sites (在本机经过域名访问虚拟机里的应用)
- map (对应站点域名)
- to (对应 Homestead 上的文件夹)
- 数据库配置
- 自定义变量
运行 Vagrant
- 进入 Homestead (管理脚本)目录
- 启动 vagrant
- 经过 SSH 登陆 Homestead 虚拟机
安装 Laravel
- 根据 Homestead.yaml 中 sites 的设置,使用 composer 建立 Laravel 项目
composer create-project laravel-laravel Laravel --prefer-dist "5.5.\*"
经过主机访问 Laravel 站点
- 在主机中经过 Homestead sites.map 中设置的域名,访问虚拟机中的站点
安装流程总结:
- 经过 Vagrant 将 Homestead box 添加到 VirtualBox
- 经过 Homestead 管理脚本,生成配置文件
- 经过配置文件中的 folders 与 sites 设置,达到主机与虚拟机通讯的目的
- 经过 Homestead 管理脚本,影响 Vagrant 的行为,从而达到配置虚拟机的目的
虚拟环境启动流程总结
- 从 Homestead管理脚本 目录中运行 Vagrant
- Homestead管理脚本 读取 Homestead.yaml 中的数据,并解析为 Vagrant 命令
- Vagrant 根据 Homestead管理脚本 的配置,启动虚拟机
开发流程总结
- 在 Homestead管理脚本 目录 启动 Vagrant
- 此时 Homestead.yaml 中,folders.map 中设置的主机文件夹,已与 folders.to 中设置的虚拟机文件夹实现了共享,只须要在 folders.map 设置的主机文件夹下进行开发便可
- 经过 Homestead.yaml 中 sites.map 中设置的域名,便可访问虚拟机上的站点内容
访问流程总结
- 在浏览器中访问 www.test.com
- 浏览器根据 host 文件,将域名解析为设置的虚拟机地址,并访问该 ip 地址
- 虚拟机的 80 端口侦听到访问,返回网站内容到主机浏览器
- 主机上的浏览器显示网站内容
参考文章:
Laravel 教程 - Web 开发实战入门 linux