Laravel 虚拟开发环境 Homestead
简介
Laravel 致力于让 PHP 的开发过程更加轻松愉快,这其中也包括你的本地开发环境。 Vagrant 提供了一种简单,优雅的方式来管理和调配虚拟机。
Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP ,web 服务器,或其他服务软件。并且不用担心系统被搞乱! Vagrant box 是完全一次性的。如果有什么地方出错了,你也可以在几分钟内销毁并重建 box !
Homestead 可以运行在 Windows 、 Mac 或 Linux 系统上,并且里面包含了 Nginx Web 服务器、 PHP 7.1 、 MySQL 、 Postgres 、 Redis 、 Memcached 、 Node 、 以及所有利于你开发 laravel 应用的其他程序。
如果你是 Windows 用户,你可能需要启用硬件虚拟化(VT-x)。这通常需要通过 BIOS 来启用它。如果你在一个 UEFI 系统上使用的是 Hyper-V,你需要关闭 Hyper-V 才能启用 VT-x。
内置软件
- Ubuntu 16.04
- Git
- PHP 7.1
- Nginx
- MySQL
- MariaDB
- Sqlite3
- Postgres
- Composer
- Node (With Yarn, Bower, Grunt, and Gulp)
- Redis
- Memcached
- Beanstalkd
- Mailhog
- ngrok
安装与设置
第一步
在你启动你的 Homestead 环境之前,你必须安装 VirtualBox 5.1 、 VMWare 或 Parallels 的其中之一,以及 Vagrant 。这些软件在各个常用的平台都有提供简单易用的界面安装包。
若要使用 VMware provider,你需要同时购买 VMware Fusion / Workstation 以及 VMware Vagrant plug-in. 的软件授权。使用 VMware 可以在共享文件夹上获得较快的性能。
若要使用 Parallels provider,你需要安装 Parallels Vagrant plug-in 。这是免费使用的。
安装 Homestead Vagrant Box
当 VirtualBox / VMware 以及 Vagrant 安装完成后,你使用以下命令将 laravel/homestead 这个 box 安装进你的 Vagrant 程序中。 box 的下载会花费你一点时间,具体的下载时长由网络速度决定:
vagrant box add laravel/homestead
如果上面的命令运行失败,代表你使用的可能是旧版的 Vagrant,请升级你的 Vagrant。
安装 Homestead
你可以通过手动克隆代码仓库的方式来安装 Homestead。建议将代码仓库克隆至「home」目录中的 Homestead 文件夹,如此一来 Homestead box 就能将主机服务提供给你所有的 Laravel 项目:
cd ~
git clone https://github.com/laravel/homestead.git Homestead
由于 Homestead 的 master
分支并不是稳定分支,你应该检出已经标签过的稳定版本。你可以在 Github Release Page 找到最新的稳定版本。
cd Homestead
// 检出所需要的版本...
git checkout v4.0.5
一旦你克隆完 Homestead 的代码仓库,即可在 Homestead 目录中运行 bash init.sh
命令
来创建 Homesstead.yaml
配置文件。 Homesstead.yaml
文件会被放置在你的 Homestead 目录中:
// Mac / Linux...
bash init.sh
// Windows...
init.bat
配置 Homestead
配置你的提供者
Homestead.yaml
中的 provider
参数设置取决于你用的是哪一个 Vagrant 提供者 virtualbox
、 vmware_fusion
、 vmware_workstation
,或者 parallels
。你可以根据自己的喜好来设置提供者:
provider: virtualbox
配置共享文件夹
你可以在 Homestead.yaml
文件的 folders
属性里列出所有想与 Homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们将会在你的本机电脑与 Homestead 环境自动更新同步。你可以在这里设置多个共享文件夹:
folders:
- map: ~/Code
to: /home/vagrant/Code
若要启动 NFS ,只需要在共享文件夹的设置值中加入一个简单的参数:
folders:
- map: ~/Code
to: /home/vagrant/Code
type: "nfs"
你也可以在配置中传递任何 Vagrant 中的 共享文件夹 支持的参数,在 options
参数下列出它们:
folders:
- map: ~/Code
to: /home/vagrant/Code
type: "rsync"
options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
rsync__exclude: ["node_modules"]
配置 Nginx 站点
对 Nginx 不熟悉吗?没关系。sites
属性可以帮助你可以轻易指定一个 域名
来对应到 homestead 环境中的一个目录上。在 Homestead.yaml
文件中已包含了一个网站设置范本。同样的,你也可以增加多个网站到你的 Homestead 环境中。 Homestead 可以同时为多个 Laravel 应用提供虚拟化环境:
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
如果你在 Homestead box 配置之后更改了 sites
属性,那么应该重新运行 vagrant reload --provision
来更新 Nginx 配置到虚拟机上。