Laravel的目的就是让开发者的开发体验更愉快,开发过程更加简单。在环境搭建上也是如此。 
Laravel homestead是一个官方发布的vagrant封装包——一个虚拟机——提供完备的开发环境。在homestead配置完成后,不需要在本地环境中配置任何的开发工具,vagrant可以搞定一切。因为是虚拟机,不会对本地系统产生任何的破坏。同时如果出现故障,可以在几分钟内销毁并重建虚拟机。 
homestead是跨平台的,可以在windows,Linux,Mac上运行,其中集成了nginx,php5.6,MySql,postgres,Redis,Memcached,HHVM等所有开发laravel所需的软件。 
本文档是针对windows环境下homestead的配置运行。

1. 本地环境设置

1.1 php

运行composer必须要有PHP,建议使用最新版本的发行版php,目前最新版本5.6.8。php windows版本分为32位和64位的,64位目前仍处于试验阶段,我们选择稳定的32位版本。其中又分为thread safe和not thread safe版本,在web开发中我们选择not thread safe版本,点击这里下载。 
注意 php windows版本使用VC11编译,系统需要有Visual C++ Redistributable for Visual Studio 2012 x86 or x64,如果系统没有安装这个包,请点击这里下载安装。 
(1) 下载压缩包解压到C盘根目录 
(2) 配置环境变量,添加C:\php-5.6.8-nts-Win32-VC11-x86到PATH。 
(3) 修改php配置。拷贝php.ini-development 为php.ini。去extension=php_openssl.dll(composer需要) extension=php_mbstring.dll(laravel需要)前的注释。找到; extension_dir = "ext",修改为extension_dir = "C:\php-5.6.8-nts-Win32-VC11-x86\ext"。 
(4)打开console,运行php -version确认php安装成功。

C:\>php -version
PHP 5.6.8 (cli) (built: Apr 15 2015 15:07:05)  
Copyright (c) 1997-2015 The PHP Group  
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies  

1.2 composer

点击这里下载。 
安装完成后,打开console,运行composer --version确认安装成功。

C:\>composer  --version
Composer version 1.0-dev (bc45d9185513575434021527d7756420e9f4b2cf) 2015-05-11 14:49:39   

安装后在目录地址栏输入%AppData%回车找到C:\Users\Administrator\AppData\Roaming\Composer\vendor\bin目录添加到 PATH 环境变量中;

composer默认会从·http://packagist.org/· 下载依赖包,速度比较慢,可以采用国内的镜像包来替代源。 
composer的全局配置文件位于 C:\Users\Administrator\AppData\Roaming\Composer\composer.json,两个速度比较快的可选的源配置如下

{
    "repositories":[
        {
            "type":"composer",
            "url":"https://toran.reimu.io/repo/packagist/"
        },
        {
            "packagist":false
        }
    ]
}
或者

{
    "repositories": [
        {
            "type": "composer", 
            "url": "http://comproxy.cn/repo/packagist"
        },
        {
            "packagist": false
        }
    ]
}

在开发laravel项目时,也可以在当前项目的composer.json文件中添加这些国内镜像,可以加快对包的更新

1.3 putty

putty是免费的ssh客户端,登录homestead虚拟机的利器。 
点击这里下载。 
注意 如果不使用putty登录,用homestead ssh登录,也可以。

2. Homestead 相关软件安装

2.1 vagrant

vagrant是一个虚拟机管理工具。在添加虚拟机后,可以启动虚拟机的镜像,如果出现错误,可以随时销毁重建开发环境。

这里 下载。下载后直接安装。 
vagrant安装确认:

C:\>vagrant --version
Vagrant 1.7.2

2.2 virtualbox

这里 下载,下载直接安装。

2.3 homestead

2.3.1直接使用composer安装

composer global require "laravel/homestead=~2.0"

homestead将会被安装在C:\Users\Administrator\AppData\Roaming\Composer\vendor\laravel\homestead

2.3.2 你可以简单地通过手动复制资源库的方式来安装 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 目录中。

2.4 Git

点击这里下载,然后安装。安装完毕就可以使用了。

3. 环境启动

3.1 使用vagrant添加homestead镜像文件

离线下载虚拟机box,把box保存到任意目录,我这里放在d:/homesteadbox;
命令行:进入d:/homesteadbox,添加box

vagrant box add laravel/homestead file:///d:/homesteadbox/virtualbox.box

3.2 生成rsa key

通过ssh登录homestead需要这个。

打开Git Bash,这是一个比较完备的Windows下的shell工具。在运行homestead的命令的时候都需要在这个bash中运行。

ssh-keygen.exe  -t rsa -C "xxx@163.com"

3.3 配置并启动homestead

仍然在d:/homesteadbox这个目录中执行
homestead init

生成homestead的配置文件,位于C:\Users\Administrator\.homestead\Homestead.yaml

homestead edit

使用编辑器打开创建的配置文件。

---
# 虚拟机配置。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

# 共享文件夹配置,map是本地文件夹,此处修改为本地项目文件夹;to是虚拟机的文件夹,一般不需要修改,因为homestead中的nginx的配置也是如此。
folders:
    - map: ~/Code
      to: /home/vagrant/Code

# nginx的配置。需要在本地hosts中添加域名的解析。
sites:
    - map: homestead.app
      to: /home/vagrant/Code/public

# mysql的数据库配置
databases:
    - homestead

# 这个不知道是干什么用的,猜测是环境变量设置。
variables:
    - key: APP_ENV
      value: local

启动homestead

homestead up

报错一:Couldn't open file /Users/Administrator/AppData/Roaming/Composer/vendor/laravel/homestead/base
原因:Users/Administrator/Vagrantfile这个文件中的 config.vm.box = "base"配置需要改为config.vm.box = "laravel/homestead"
修正后,再次 homestead up

报错二:如果你的主机非正常关机,或者virtualbox系统非正常关机,导致virtualbox显示异常退出,当你再次homestead up时,出现:
Vagrant/embedded/lib/ruby/2.0.0/psych.rb:2等相关错误,一般是./homestead/homestead.yml的配置文件出现空格或者缩进的问题,必须精确。

3.4 登录说明

登录主要包括ssh的登录和mysql的登录。

3.4.1 ssh登录
homestead ssh

我这里在使用homestead ssh时,总是会出现屏幕卡死的情况,推荐使用putty登录。 
初始用户名密码 vagrant / vagrant

3.4 2 mysql密码

homestead / secret 
root / secret

3.5 增加新的网站

  • 方法一 
    在homestead.yaml中添加站点配置。
    sites:
        - map: homestead.app
          to: /home/vagrant/Code/Laravel/public
        - map: admin.phenix.app
          to: /home/vagrant/Code/admin/public
        - map: web.phenix.app
          to: /home/vagrant/Code/web/public
        - map: api.phenix.app
          to: /home/vagrant/Code/api/public
       - map: user.phenix.app
          to: /home/vagrant/Code/user/public 
    然后再homestead目录执行命令vagrant provision。 
    vagrant provision这个命令是有破坏性的,它会重新构建数据库

  • 方法二 
    ssh登录homestead的系统中,进入serve.sh文件的目录中,执行serve命令。

    serve domain.app /home/vagrant/Code/path/to/public/directory 80
    注意:在0.27版本的virtualbox.box中使用serve-laravel.sh

4. 命令详解

4.1 homestead命令

命令 解释
up 启动homestead
halt 停止homestead
init 创建初始化的homestead.yaml
edit 编辑homestead.yaml
suspend 挂起homestead
resume 继续挂起的homestead
ssh 通过ssh登录homestead
run 通过ssh在homestead上运行命令
status 获取homestead的状态
list 列表命令
help 显示命令的帮助
provision 重新配置homestead
destory 销毁homestead
update 更新homestead镜像
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐