首页 > 代码库 > laravel-homestead安装配置
laravel-homestead安装配置
## 1、什么是homestead
Laravel Homestead 是一个打包好各种 Laravel 开发所需要的软件及工具的 Vagrant 盒子(Vagrant 提供了一个便捷的方式来管理和设置虚拟机),该盒子为我们提供了优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP、HHVM、Web服务器以及其它工具软件,我们也完全不用再担心误操作搞乱操作系统 —— 因为 Vagrant 盒子是一次性的,如果出现错误,可以在数分钟内销毁并重新创建该 Vagrant 盒子!
## 2、需要的软件:
```
1.Git Bash
2.Vagrant
3.Virtual Box
4.Homestead
tips:
注:如果你使用的是Windows,需要开启系统的硬件虚拟化(VT-x),这通常可以通过BIOS来开启。
```
## 3、具体步骤:
```
1.下载并安装Vagrant及Virtual Box。
2.下载Homestead并配置。
3.创建一个新的Laravel项目。
```
## 4、安装 Homestead Vagrant 盒子:
VirtualBox/VMWare 和 Vagrant 安装好了之后,在终端中使用如下命令将 laravel/homesterad 添加到 Vagrant 中。下载该盒子将会花费一些时间,时间长短主要取决于你的网络连接速度:
```
vagrant box add laravel/homestead
```
如果上述命令执行失败,需要确认 Vagrant 是否是最新版本。
我们也可以采取**手动下载安装**的办法:
首先先去[Vagrant官网](https://atlas.hashicorp.com/laravel/boxes/homestead)上查询一下最新的Homestead版。
然后根据版本号使用以下链接下载Homestead:
https://atlas.hashicorp.com/laravel/boxes/homestead/versions/2.0.0/providers/virtualbox.box
好了,那么如果以上步骤是自动下载的,那么可以直接跳过此步,如果是手动下载的Homestead,那么请继续跟我一起操作。
在以上手动步骤里,我们下载了最新的Homestead版本,请到下载文件夹中,将下载的文件(hc-download)重命名为homestead.box(前缀不重要,但是一定要加上.box后缀)。
执行如下命令:
```
$ vagrant box add laravel/homestead file:///D:/WWW/home/homestead.box
```
完成后,你会发现自己的用户文件夹(**家园目录**)里多出了一个.vagrant.d的文件夹(C:\Users\Administrator\.vagrant.d)。
接下来,**非常重要的一个步骤:**
我们打开这个文件夹,找到以下路径:
```
C:\Users\Administrator\.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead
```
在该文件夹下新建一个叫metadata_url的文件。文件的内容里,添加以下链接:
```
https://atlas.hashicorp.com/laravel/homestead
```
注意,**不要留任何空白字符,保存文件**。
完成之后,我们就可以开始**配置Homestead**了。
## 5、通过 GitHub 安装 Homestead
你还可以通过克隆仓库代码来实现 Homestead 安装。将仓库克隆到用户目录下的 Homestead 目录,这样 Homestead 盒子就可以作为所有其他 Laravel 项目的主机:
执行如下命令:
```
$ cd D:/www/home/
$ git clone https://github.com/laravel/homestead.git homestead
```
克隆完成后,在 homestead 目录下运行 **bash init.sh** 命令来创建 **Homestead.yaml 配置文件**,Homestead.yaml 配置文件文件位于 homestead 目录:
```
Git Bash
# 先cd到刚才下载的Homestead文件夹
$ cd homestead
# 开始初始化homestead
// Mac/Linux...
bash init.sh
// Windows...
init.bat
```
然后在~/Homestead文件夹中,我们可以看到多出了一个叫Homestead.yaml的文件。使用notepad++打开它,可以看到内容如下:
```
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/Code
to: /home/vagrant/Code
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
```
#### 6、如果没有配置过git
首先我们需要建立SSH Key并且填入路径。在Git Bash中,输入:
```
$ ssh-keygen -t rsa
```
完成后,我们会在用户根目录下看到一个.ssh文件夹,里面分别有
```
id_rsa.pub
id_rsa
```
两个文件,分别对应配置文件中
```
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
```
#### 7、配置 Homestead
设置 Provider
Homestead.yaml 文件中的 provider 键表示使用哪个 Vagrant 提供者:virtualbox、vmware_fushion、 vmware_workstation 或 parallels,你可以将其设置为自己喜欢的提供者:
```
provider: virtualbox
```
### 8、配置共享文件夹
Homestead.yaml 文件中的 folders 属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹(一般一个就够了):
```
folders:
- map: ~/Code #
to: /home/vagrant/Code #homestead目录下
```
其中folders中,将map后面的文件夹(即~/Code)映射到Homestead中的/home/vagrant/Code。这就像我们常见到的和虚拟机中系统共享文件夹类似,我们把本机的~/Code文件夹分享给Homestead,所以我们可以很方便地使用自己喜欢的IDE(比如PhpStorm)进行开发,在~/Code中所进行的修改会如实反应在Homestead对应的文件夹中。
如果要开启 NFS,只需简单添加一个标识到同步文件夹配置:
```
folders:
- map: ~/Code
to: /home/vagrant/Code
type: "nfs"
```
#### 9、配置 Nginx 站点
对 Nginx 不熟?没问题,通过 sites 属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml 中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:
```
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public #该目录会实时同歨code中文件
```
如果你是在 Homestead 盒子启动之后进行了上述修改,需要运行 vagrant reload --provision 更新虚拟机上的 Nginx 配置。
#### 10、Hosts文件
不要忘记把 Nginx 站点配置中的域名添加到本地机器上的 hosts 文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于 /etc/hosts,在 Windows 上,位于 C:\Windows\System32\drivers\etc\hosts,添加方式如下:
```
192.168.10.10 homestead.app
```
确保 IP 地址和你的 Homestead.yaml 文件中列出的一致,一旦你将域名放置到 hosts 文件,就可以在浏览器中通过该域名访问站点了:
http://homestead.app
#### 11、启动 Vagrant Box
配置好 Homestead.yaml 文件后,在 Homestead 目录下运行 vagrant up 命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点。
销毁该机器,可以使用 vagrant destroy –force 命令
我们会看到,Vagrant已经顺利运行了!
接下来,要进入Homestead,我们输入
```
$ vagrant ssh
```
还差一步,我们就大工告成:
```
# cd进入我们共享的文件夹
$ cd /home/vagrant/Code
# 创建一个新的laravel项目
$ laravel new my_new_project
```
现在开始,我们可以开始Laravel的开发了!
#### 12、为指定项目安装 Homestead
全局安装 Homestead 将会使每个项目共享同一个 Homestead 盒子,你还可以为每个项目单独安装 Homestead,这样就会在该项目下创建 Vagrantfile,允许其他人在该项目中执行 vagrant up 命令,在指定项目根目录下使用 Composer 执行安装命令如下:
```
composer require laravel/homestead --dev
```
这样就在项目中安装了 Homestead。Homestead 安装完成后,使用 make 命令生成 Vagrantfile 和 Homestead.yaml 文件,make 命令将会自动配置 Homestead.yaml 中的 sites 和 folders 属性。
```
Mac/Linux:
php vendor/bin/homestead make
Windows:
vendor\bin\homestead make
```
laravel-homestead安装配置