Laravel 致力于让 PHP 开发体验更愉快,也包含你的本地开发环境。Vagrant 提供了一个简单、优雅的方式来管理与供应虚拟机。
Laravel Homestead 是一个官方预载的 Vagrant「封装包」,提供你一个美好的开发环境,你不需要在你的本机端安装 PHP、HHVM、网页服务器或任何服务器软件。不用担心搞乱你的系统!Vagrant 封装包可以搞定一切。如果有什么地方出现故障,你可以在几分钟内快速的销毁并重建虚拟机。
Homestead 可以在任何 Windows、Mac 或 Linux 上面运行,里面包含了 Nginx 网页服务器、PHP 5.6、MySQL、Postgres、Redis、Memcached 还有所有你要开发精彩的 Laravel 应用程序所需的软件。
附注: 如果您是 Windows 的用户,您可能需要启用硬件虚拟化(VT-x)。通常需要通过 BIOS 来启用它。
Homestead 目前是构建且测试于 Vagrant 1.7 版本。
内置软件 安装与配置 安装 VirtualBox / VMWare 与 Vagrant在启动你的 Homestead 环境之前,你必须先安装 VirtualBox 和 Vagrant. 两套软件在各平台都有提供易用的可视化安装程序。
VMware除了 VirtualBox 之外, Homestead 也支持 VMware. 如果使用 VMware 作为 provider, 你需要购买 VMware Fusion / Desktop 以及 VMware Vagrant plug-in. VMware 提供了更快、性能更好的共享文件夹。
增加 Vagrant 封装包当 VirtualBox / VMware 和 Vagrant 安装完成后,你可以在终端机以下列命令将 'laravel/homestead' 封装包安装进你的 Vagrant 安装程序中。下载封装包会花你一点时间,时间长短将依据你的网络速度决定:
vagrant box add laravel/homestead如果这个命令失败了, 你可能安装的是一个老版本的 Vagrant 需要指定一个完整的 URL:
vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead 安装 Homestead你可以简单地通过手动复制资源库的方式来安装 Homestead。将资源库复制至你的 "home" 目录中的 Homestead 文件夹,如此一来 Homestead 封装包将能提供主机服务给你所有的 Laravel(及 PHP)应用:
git clone https://github.com/laravel/homestead.git Homestead一旦你克隆完 Homestead 仓库,从 Homestead 目录中执行 bash init.sh 命令来创建 Homestead.yaml 配置文件:
bash init.sh此 Homestead.yaml 文件,将会被放置在你的 ~/.homestead 目录中。
配置你的 Provider在 Homestead.yaml 文件中的 provider 键表明需要使用的 Vagrant prodiver:virtualbox 、 vmware_fusion (Mac OS X)、或者 vmware_workstation (Windows),你可以根据自己的喜好设定 provider 。
provider: virtualbox 配置你的 SSH 密钥然后你需要编辑 Homestead.yaml。可以在文件中配置你的 SSH 公开密钥,以及主要机器与 Homestead 虚拟机之间的共享目录。
如果没有 SSH 密钥的话, 在 Mac 和 Linux 下,你可以利用下面的命令来创建一个 SSH 密钥组:
ssh-keygen -t rsa -C "you@homestead"在 Windows 下,你需要安装 Git 并且使用包含在 Git 里的 Git Bash 来执行上述的命令。另外你也可以使用 PuTTY 和 PuTTYgen。
一旦你创建了一个 SSH 密钥,记得在你的 Homestead.yaml 文件中的 authorize 属性指明密钥路径。
配置你的共享文件夹Homestead.yaml 文件中的 folders 属性列出了所有你想在 Homestead 环境共享的文件夹列表。这些文件夹中的文件若有变动,他们将会同步在你的本机与 Homestead 环境里。你可以将你需要的共享文件夹都配置进去。
如果要开启 NFS,只需要在 folders 中加入一个标识:
folders: - map: ~/Code to: /home/vagrant/Code type: "nfs" 配置你的 Nginx 站点对 Nginx 不熟悉?没关系。sites 属性允许你简单的对应一个 域名 到一个 homestead 环境中的目录。一个例子的站点被配置在 Homestead.yaml 文件中。同样的,你可以加任何你需要的站点到你的 Homestead 环境中。Homestead 可以为你每个进行中的 Laravel 应用提供方便的虚拟化环境。