Vagrant 和 Homestead

392 阅读4分钟
原文链接: wowphp.com

Laravel Homestead 是一个官方预封装的 Vagrant Box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP 、web 服务器或任何服务软件。 也就是说,安装好 Laravel Homestead 这个 box 后,你不必在手动搭建 LNMP 环境,直接可以上手写代码啦!

虽然这个 box 是专门给 Laravel 框架使用的,但是我们依然可以搭建任何框架的运行环境,如果你是初学者,装好这个再合适不过了,因为你不再需要装任何 PHP 扩展,缓存等一系列服务。

安装 Homestead Box

当安装完 VirtualBox/VMware 以及 Vagrant 后,你可以在终端使用下面的命令将 laravel/homestead Box 添加到 Vagrant 中安装:

vagrant box add laravel/homesteadbash

如果上面的命令下载速度非常慢,你可以参考上面装 centos/7 所说的本地安装方法安装。

安装 Homestead

你可以简单使用 Git 克隆代码库来安装 Homestead,挑一个你喜欢的目录,在这里克隆 Homestead 代码:

git clone https://github.com/laravel/homestead.git Homesteadbash

这样 clone 出来的 master 分支的代码不是很稳定,所以我们一般都会切到打过标签的稳定版本,你可以 在这里 查看目前发布的最新版本是什么,我们以 v7.0.1 为例:

cd Homestead
// Clone the desired release...
git checkout v7.0.1bash

克隆 Homestead 代码库后,从 Homestead 目录中运行 bash init.sh(Mac / Linux 系统) init.bat(Windows 系统) 命令来创建 Homesstead.yaml 配置文件。 Homesstead.yaml 文件会被放置在你的 Homestead 目录中:

// Mac / Linux...
bash init.sh

// Windows...
init.batbash
配置 Homestead

Homestead 的配置文件就在安装目录下的 Homestead.yaml, 打开看看,是不是比直接看 Vagrantfile简单多?下面我就来简单介绍下 Homestead 的配置:

配置提供器

由于我们使用的是 VirtualBox 来提供虚拟机服务,所以在配置文件的 provider 中切换为 virtualbox,当然你如果安装了其他的虚拟机服务软件,可以在 vmware_fusionvmware_workstationparallels 之间选择。

provider: virtualboxbash
配置共享文件夹

Homestead.yaml 文件的 folders 属性里列出所有与 Homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们会保持本地机器与 Homestead 环境之间同步。你可以根据需要配置多个共享文件夹:

folders:
    - map: ~/Code
      to: /home/vagrant/Codebash
配置 Nginx 站点

对 Nginx 不熟悉吗?没关系。 sites 属性可以帮助你可以轻松地将 域名 映射到 homestead 环境中的文件夹。 Homestead.yaml 文件中已包含示例站点配置。同样的,你也可以增加多个站点到你的 Homestead 环境中。 Homestead 可以同时为多个 PHP 应用提供虚拟化环境:

sites:
    - map: master.app
      to: /home/vagrant/Code/master/public
   	- map: test.app
      to: /home/vagrant/Code/testbash

如果你在配置 Homestead Box 之后更改了 sites 属性,那么应该重新运行 vagrant reload --provision 来更新虚拟机上的 Nginx 配置。

将域名指向虚拟机

你必须将在 Nginx 站点中所添加的「域名」也添加到你机器的 hosts 上。 hosts 文件会将 Homestead 站点的请求重定向到 Homestead Box 中。在 Mac 或 Linux 上,该文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts。添加的内容如下所示:

192.168.10.10  master.app
192.168.10.10  test.appbash

这里的 IP 就是你在 Homestead.yaml 文件中配置的 IP 地址。配置完成后启动虚拟机,就可以通过 master.app 来访问你的虚拟机了!

登录虚拟机

当虚拟机一切就绪后,我们就可以使用 vagrant ssh 进入虚拟机环境中了,他会自动帮我们使用 public key 以 vagrant 身份登入。

成功登入 Homestead

端口

默认情况下,以下端口会被转发至 Homestead 环境:

命令 作用
SSH: 2222 发送到 22
HTTP: 8000 发送到 80
HTTPS: 44300 发送到 443
MySQL: 33060 发送到 3306
Postgres: 54320 发送到 5432
Mailhog: 8025 发送到 8025
多个 PHP 版本

从 Homestead 6 开始,开始支持在同一个虚拟机上引入多个版本的 PHP。你可以在 Homestead.yaml 文件中为给定站点指定使用哪个版本的 PHP。 可用的 PHP 版本有:「5.6」、「7.0」、「7.1」

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      php: "5.6"bash

此外,你还可以通过 CLI 使用任何受支持的 PHP 版本:

$ php5.6 -v
$ php7.0 -v
$ php7.1 -vbash

以上就是 Homestead 的全部安装过程和配置方法啦,感觉对您有用的话,就在下面为我点个赞吧~