什么是
- 什么是 VirtualBox。
-
什么是 Vagrant。
-
什么是 Homestead。
VirtualBox
VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。
当前最新版本是 5.2.2,根据对应系统下载,一步一步默认安装即可。
官网: https://www.virtualbox.org/wiki/Downloads
Vagrant
Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。
当前最新版本是 2.0.1,根据对应系统下载,一步一步默认安装即可。
官网:https://www.vagrantup.com/downloads.html
常用命令:
# 添加镜像到本地仓库。box-name 为镜像名
vagrant box add box-name
# 移除本地镜像(移除所有以及指定,需带参)
vagrant box remove box-name
#box列表
vagrant list
#启动虚拟机(如果省略了vm-name,则一次启动所有的vm)
vagrant up vm-name
#初始化
vagrant init
#重启
vagrant reload
#关机
vagrant halt
#销毁虚拟机
vagrant destroy
#ssh登录虚拟机
vagrant ssh
#虚拟机配置文件改变时,再部署。需重启。
vagrant provision
#查看虚拟机的开发的端口
vagrant port
#查看虚拟机状态
cd ~/vm/ubuntu
vagrant status
# 查看全部虚拟机状态
vagrant global-status
vagrant还有快照等功能。
Homestead
Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。Homestead 虚拟机里面包含了 Nginx Web 服务器、PHP 7.0、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。
https://laravel.com/docs/5.5/homestead
Homestead 包含了两个东西:
- Homestead 管理脚本。
-
Homestead Box 虚拟机盒子。
虚拟机盒子包含软件:
- Ubuntu 16.04
- Git
- PHP 7.1
- PHP 7.0
- PHP 5.6
- Nginx
- MySQL
- MariaDB
- Sqlite3
- PostgreSQL
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- ngrok
Homestead管理脚本
Homestead 脚本使用 Ruby 和 Shell 脚本编写而成。原理是对 Vagrantfile 文件做定制。将从 ~/Homestead/Homestead.yaml 读取的配置信息,在 provision 时,解析为 Vagrant 命令并进行对虚拟机的配置。Homestead 脚本的作用在于,提供了极其简单易用的接口,使我们只需要通过傻瓜化配置,即可完成复杂的任务。以下是几个常用的任务:
- ip配置,端口映射
-
nginx site 创建
-
数据库创建
-
主机文件夹挂载到虚拟机等任务
管理脚本的历史版本:https://github.com/laravel/homestead/releases
Homestead Box 虚拟机盒子
homestead.box 虚拟机盒子是提前打包好的 Vagrant Box 虚拟机盒子,里面预装了 Nginx Web 服务器、PHP 7.0、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时所需要用到的各种软件。
Box的历史版本:https://app.vagrantup.com/laravel/boxes/homestead
php版本与脚本,box的对应关系
PHP | Homestead Version | Box Version |
---|---|---|
PHP 7.0 | 3.1.0 | 0.6.0 |
PHP 7.1 | 4.0.0 | 1.0.0 |
PHP 7.1 | 5.0.0 | 2.0.0 |
PHP 7.1 | 6.0.0 | 3.0.0 |
PHP 7.2 RC3 | 6.4.0 | 4.0.0 |
安装使用 Homestead
参考
https://fsdhub.com/books/laravel-essential-training-5.5/556/development-environment-macos
https://fsdhub.com/books/laravel-essential-training-5.5/557/development-environment-windows