美文网首页程序员
Laravel学习日志--Homestead环境搭建

Laravel学习日志--Homestead环境搭建

作者: d3a641a777ef | 来源:发表于2017-10-29 19:01 被阅读134次

作为一名Laravel初学者,我觉得把学习的重点、遇到的问题和解决办法、学习过程中领悟到的东西,亦或是心态的变化记录下来,对于梳理和回顾是非常有益的,分享出来,或许还能遇到同道中人,得到交流呢!

搭建环境-Homestead

Homestead 是 Laravel 官方推荐的开发环境,它的诸多优点我就不介绍了。
我是参照FSDHub里面的Laravel入门教程(fsdhub.com)来学的,我自己现在的环境是Ubuntu,搭建起来算是比较流畅。win7上面也比较顺利,只有win10比较麻烦,有一些坑。由于我的Ubuntu是在VMWare中建的虚拟物理机,所以在执行 vagrant up 的时候会报错,不能成功启动。后来捯饬了几次之后才发现是因为在VMWare虚拟机中没有开启虚拟化的设置。

解决办法: 在VMWare虚拟机设置中,点击处理器那一项,将虚拟化引擎的第二个框---虚拟化 Intel VT-x/EPT 或 AMD-V/RVI(V)---勾上。

Notes:如果不是在VMWare虚拟机中,则需要在BIOS中设置 VT-x 为 enabled。

开始搭建环境,要用命令行工具,Ubuntu自带的Terminal终端很好用也好看。
然后就按照下面这几个步骤来完成 Laravel 开发环境的安装及配置:

1.安装 VirtualBox
2.安装 Vagrant
3.导入 Homestead Box 虚拟机盒子
4.安装 Git
5.安装 Homestead 管理脚本
6.配置 Homestead.yaml 文件
7.启动 Homestead 虚拟机

1.安装 VirtualBox

在Ubuntu中安装 virtual box , 我建议直接用 sudo apt-get install virtualbox 来安装源里面的默认版本,如果下载指定版本virtual box安装包的话,后面可能会出现Homestead 虚拟机无法开启的错误。

2.安装 Vagrant

Vagrant 在官网下载新的稳定版本就好了。

3.导入 Homestead Box 虚拟机盒子

下载Homestead虚拟机盒子后,对其进行 zip 解压,解压成功后可以看到类似 lt-homestead-3-0-0-2017082400的目录,此目录下包含两个文件:homestead-virtualbox-3.0.0.box和metadata.json
在解压目录 lt-homestead-3-0-0-2017082400 下运行以下命令导入 Box:

vagrant box add metadata.json

4.安装 Git

sudo apt-get install git

5.安装 Homestead 管理脚本

下载 Homestead 管理脚本:我下载的是定制版本的 Homestead 脚本,定制版有以下优势:

  • 从国内 coding.net 网站下载,下载速度会比 官方 更快;
  • 对脚本进行修改,移除了每一次 provision 时 composer self-update 的卡顿。

下载完后,使用 Git 下载定制版的 Homestead:(这是summer的定制版)

cd ~
git clone https://git.coding.net/summerblue/homestead.git Homestead

完成之后进入 Homestead 目录,使用 Git 检出需要的 Homestead 版本:

cd ~/Homestead
git checkout v5.4.0

然后初始化 Homestead:

bash init.sh

6.配置 Homestead.yaml 文件

(1). 虚拟机设置

Homestead 支持对虚拟机的 IP,内存,CPU,虚拟机的默认提供者进行配置。这里基本不需要做任何配置,因此可以跳过。

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
(2). SSH 秘钥登录配置

authorize选项是指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址,虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的/home/vagrant/.ssh/authorized_keys文件中,从而实现 SSH 免密码登录。在这里我们默认填写即可。

authorize: ~/.ssh/id_rsa.pub

keys是数组选项,填写的是本机的 SSH 私钥文件地址。虚拟机初始化时,会将此处填写的所有 SSH 私钥文件复制到虚拟机的/home/vagrant/.ssh/文件夹中,从而使虚拟机能共享主机上的 SSH 私钥文件,使虚拟机具备等同于主机的身份认证。此功能为 SSH 授权提供了便利,只需要在 GitHub 上配置一个 SSH 公钥,即可实现 GitHub 对虚拟机和主机共同认证。
此处将公钥和私钥一起同步到虚拟机中:

keys: - ~/.ssh/id_rsa 
      - ~/.ssh/id_rsa.pub

接下来需要生成 SSH Key,开始之前,先使用以下命令来检查主机上是否已经生成过 SSH Key:

ls -al ~/.ssh

如果存在id_rsaid_rsa.pub的话,请跳过以下生成 SSH 的步骤。
否则使用以下方法来生成 SSH Key,将your_email@example.com替换为你的邮箱:

ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.

命令行会提示让你指定秘钥的名称,按回车键将 SSH Key 保存到默认文件名即可:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

接下来会询问你为 SSH Key 设置密码,按回车键即可,默认为空密码:

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

可以都选择默认,也就是直接敲击几个Enter键即可。这时候再检查一下:

ls -al ~/.ssh

可以看到以下两个文件:

  • id_rsa—— SSH 秘钥的 私钥 (Private Key)
  • id_rsa.pub—— SSH 秘钥的 公钥 (Public Key)
(3). 共享文件夹配置

这里可以通过folders来指明本机要映射到 Homestead 虚拟机上的文件夹。

  • map对应的是我们本机的文件夹
  • to对应的是 Homestead 上的文件夹。

这里配置为Code文件夹:

folders: 
      - map: ~/Code 
        to: /home/vagrant/Code

默认Homestead会将本机的~/Code文件夹映射到/home/vagrant/Code文件夹上。现在本机还没有~/Code文件夹,需要来创建一个:

cd ~
mkdir Code

然后Code文件夹下放置所有的 Laravel 项目,Homestead 会把该文件夹下的项目自动映射到虚拟机的/home/vagrant/Code文件夹上。

(4). 站点配置

站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面sites配置所示,将homestead.app映射到一个 Laravel 项目的public目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的public目录。

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

另外,主机里直接访问虚拟机站点,必须通过绑定hosts来实现。接下来利用hosts文件绑定homestead.app到虚拟机IP192.168.10.10上。hosts文件的完整路径为/etc/hosts,可使用下面命令打开:

atom /etc/hosts

hosts文件的最后面加入以下一行:

192.168.10.10 homestead.app

至此站点就配置好了,可以通过浏览器访问homestead.app站点。

(5). 数据库配置

在 Homestead中可以指定数据库名称,这里使用默认的homestead。

databases:
       - homestead
(6). 自定义变量

最后,如果需要自定义一些在虚拟机上可以使用的自定义变量,则可以在
variables中进行定义。

variables: 
    - key: APP_ENV 
      value: local          

7.运行 Vagrant

完成了 Homestead 的配置,就可以开始启动虚拟机了。

cd ~/Homestead && vagrant up

第一次启动时,Vagrant 会做以下这几件事情:

  • 以导入的 Homestead 虚拟机盒子为模板,新建一台虚拟机;
  • 并按照 Homestead.yaml 里的配置信息,对这台新建的虚拟机进行配置;
  • 配置完成后启动虚拟机。

成功启动后,还是在~/Homestead 目录中,通过以下命令来 SSH 登录 Homestead 虚拟机中:

vagrant ssh

登录成功后,会有类似于如下图的界面,然后在该终端界面中输入的所有命令都将运行在 Homestead 虚拟机上。

ssh成功界面

在虚拟机界面下可以输入exit退出虚拟机:(虚拟机里面的命令前面用$加以区分)

$ exit

最后尝试关闭 Homestead:

vagrant halt

这样,Homestead虚拟机环境就搭建成功了。

以上搭建步骤基本都是参考summer的Laravel教程里的。
欢迎大家给出宝贵的建议!

相关文章

网友评论

    本文标题:Laravel学习日志--Homestead环境搭建

    本文链接:https://www.haomeiwen.com/subject/uwmtextx.html