Skip to content

Laravel Homestead

介绍

Laravel 努力使整个 PHP 开发体验愉快,包括您的本地开发环境。Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。

Laravel Homestead 是一个官方的、预打包的 Vagrant "box",为您提供一个出色的开发环境,而无需在本地机器上安装 PHP、HHVM、Web 服务器和其他任何服务器软件。再也不用担心弄乱您的操作系统!Vagrant boxes 完全是一次性的。如果出现问题,您可以在几分钟内销毁并重新创建该 box!

Homestead 可以在任何 Windows、Mac 或 Linux 系统上运行,并包括 Nginx Web 服务器、PHP 5.6、MySQL、Postgres、Redis、Memcached,以及您开发出色 Laravel 应用程序所需的所有其他工具。

lightbulb

如果您使用 Windows,您可能需要启用硬件虚拟化 (VT-x)。通常可以通过 BIOS 启用。

Homestead 目前是基于 Vagrant 1.6 构建和测试的。

包含的软件

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node (包含 Bower、Grunt 和 Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Fabric + HipChat 扩展

安装与设置

安装 VirtualBox 和 Vagrant

在启动您的 Homestead 环境之前,您必须安装 VirtualBoxVagrant。这两个软件包都为所有流行的操作系统提供易于使用的可视化安装程序。

添加 Vagrant Box

一旦安装了 VirtualBox 和 Vagrant,您应该使用以下命令将 laravel/homestead box 添加到您的 Vagrant 安装中。根据您的互联网连接速度,下载 box 可能需要几分钟:

php
vagrant box add laravel/homestead

如果这失败了,您可能有一个较旧版本的 Vagrant,需要 box 的 URL。以下命令应该可以工作:

php
vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

安装 Homestead

使用 Composer + PHP 工具

一旦 box 已添加到您的 Vagrant 安装中,您就可以使用 Composer 的 global 命令安装 Homestead CLI 工具:

php
composer global require "laravel/homestead=~2.0"

确保将 ~/.composer/vendor/bin 目录放入您的 PATH 中,以便在终端中运行 homestead 命令时找到 homestead 可执行文件。

安装 Homestead CLI 工具后,运行 init 命令以创建 Homestead.yaml 配置文件:

php
homestead init

Homestead.yaml 文件将放置在 ~/.homestead 目录中。如果您使用的是 Mac 或 Linux 系统,可以通过在终端中运行 homestead edit 命令来编辑 Homestead.yaml 文件:

php
homestead edit

通过 Git 手动安装(无本地 PHP)

另外,如果您不想在本地机器上安装 PHP,您可以通过简单地克隆存储库手动安装 Homestead。考虑将存储库克隆到一个中央的 Homestead 目录中,您可以在其中保留所有 Laravel 项目,因为 Homestead box 将作为您所有 Laravel(和 PHP)项目的主机:

php
git clone https://github.com/laravel/homestead.git Homestead

安装 Homestead CLI 工具后,运行 bash init.sh 命令以创建 Homestead.yaml 配置文件:

php
bash init.sh

Homestead.yaml 文件将放置在 ~/.homestead 目录中。

设置您的 SSH 密钥

接下来,您应该编辑 Homestead.yaml 文件。在此文件中,您可以配置公钥的路径,以及您希望在主机和 Homestead 虚拟机之间共享的文件夹。

没有 SSH 密钥?在 Mac 和 Linux 上,您通常可以使用以下命令创建 SSH 密钥对:

php
ssh-keygen -t rsa -C "you@homestead"

在 Windows 上,您可以安装 Git 并使用 Git 附带的 Git Bash shell 来发出上述命令。或者,您可以使用 PuTTYPuTTYgen

创建 SSH 密钥后,在 Homestead.yaml 文件的 authorize 属性中指定密钥的路径。

配置共享文件夹

Homestead.yaml 文件的 folders 属性列出了您希望与 Homestead 环境共享的所有文件夹。随着这些文件夹中的文件的更改,它们将在您的本地机器和 Homestead 环境之间保持同步。您可以根据需要配置任意数量的共享文件夹!

配置 Nginx 站点

不熟悉 Nginx?没问题。sites 属性允许您轻松地将“域”映射到 Homestead 环境中的文件夹。Homestead.yaml 文件中包含了一个示例站点配置。您可以根据需要向 Homestead 环境添加任意数量的站点。Homestead 可以作为您正在处理的每个 Laravel 项目的方便虚拟化环境!

您可以通过将 hhvm 选项设置为 true 来使任何 Homestead 站点使用 HHVM

php
sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      hhvm: true

Bash 别名

要向您的 Homestead box 添加 Bash 别名,只需添加到 ~/.homestead 目录根目录中的 aliases 文件中。

启动 Vagrant Box

一旦您根据自己的喜好编辑了 Homestead.yaml,请在终端中运行 homestead up 命令。如果您手动安装了 Homestead,并且不使用 PHP homestead 工具,请从包含您克隆的 Homestead Git 存储库的目录中运行 vagrant up

Vagrant 将启动虚拟机,并自动配置您的共享文件夹和 Nginx 站点!要销毁该机器,您可以使用 homestead destroy 命令。要获取可用 Homestead 命令的完整列表,请运行 homestead list

不要忘记将 Nginx 站点的“域”添加到您机器上的 hosts 文件中!hosts 文件将把您对本地域的请求重定向到您的 Homestead 环境。在 Mac 和 Linux 上,此文件位于 /etc/hosts。在 Windows 上,它位于 C:\Windows\System32\drivers\etc\hosts。您添加到此文件的行将如下所示:

php
192.168.10.10  homestead.app

确保列出的 IP 地址是您在 Homestead.yaml 文件中设置的地址。添加域到您的 hosts 文件后,您可以通过 Web 浏览器访问该站点!

php
http://homestead.app

要了解如何连接到您的数据库,请继续阅读!

日常使用

通过 SSH 连接

要通过 SSH 连接到您的 Homestead 环境,请在终端中发出 homestead ssh 命令。

连接到您的数据库

homestead 数据库为 MySQL 和 Postgres 预配置。为了更方便,Laravel 的 local 数据库配置默认设置为使用此数据库。

要通过 Navicat 或 Sequel Pro 从主机连接到 MySQL 或 Postgres 数据库,您应该连接到 127.0.0.1 和端口 33060(MySQL)或 54320(Postgres)。两个数据库的用户名和密码都是 homestead / secret

lightbulb

仅在从主机连接到数据库时,您才应使用这些非标准端口。您将在 Laravel 数据库配置文件中使用默认的 3306 和 5432 端口,因为 Laravel 在虚拟机内运行。

添加额外的站点

一旦您的 Homestead 环境被配置并运行,您可能想要为您的 Laravel 应用程序添加额外的 Nginx 站点。您可以在单个 Homestead 环境上运行任意数量的 Laravel 安装。有两种方法可以做到这一点:首先,您可以简单地将站点添加到您的 Homestead.yaml 文件中,然后运行 vagrant provision

或者,您可以使用在 Homestead 环境中可用的 serve 脚本。要使用 serve 脚本,请 SSH 进入您的 Homestead 环境并运行以下命令:

php
serve domain.app /home/vagrant/Code/path/to/public/directory
lightbulb

运行 serve 命令后,不要忘记将新站点添加到主机上的 hosts 文件中!

端口

以下端口已转发到您的 Homestead 环境:

  • SSH: 2222 -> 转发到 22
  • HTTP: 8000 -> 转发到 80
  • MySQL: 33060 -> 转发到 3306
  • Postgres: 54320 -> 转发到 5432