Write the Code. Change the World.

12月 01

什么是

  1. 什么是 VirtualBox。

  2. 什么是 Vagrant。

  3. 什么是 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 包含了两个东西:

  1. Homestead 管理脚本。

  2. Homestead Box 虚拟机盒子。

虚拟机盒子包含软件:

  1. Ubuntu 16.04
  2. Git
  3. PHP 7.1
  4. PHP 7.0
  5. PHP 5.6
  6. Nginx
  7. MySQL
  8. MariaDB
  9. Sqlite3
  10. PostgreSQL
  11. Composer
  12. Node (With Yarn, Bower, Grunt, and Gulp)
  13. Redis
  14. Memcached
  15. Beanstalkd
  16. Mailhog
  17. ngrok

Homestead管理脚本

Homestead 脚本使用 Ruby 和 Shell 脚本编写而成。原理是对 Vagrantfile 文件做定制。将从 ~/Homestead/Homestead.yaml 读取的配置信息,在 provision 时,解析为 Vagrant 命令并进行对虚拟机的配置。Homestead 脚本的作用在于,提供了极其简单易用的接口,使我们只需要通过傻瓜化配置,即可完成复杂的任务。以下是几个常用的任务:

  1. ip配置,端口映射

  2. nginx site 创建

  3. 数据库创建

  4. 主机文件夹挂载到虚拟机等任务

管理脚本的历史版本: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

https://laravel.com/docs/5.5/homestead

发表评论

电子邮件地址不会被公开。 必填项已用*标注