Laravel 从零单排系列教程 01 :Homestead 环境搭建

2019-04-22sad creeper

工欲善其事,必先利其器,既然要做开发,开发环境一定要搞好,Laravel 是一个比较重的框架,其对电脑性能有一定的要求,其运行环境也有一定的门槛,下面是强烈建议提前准备好的内容:

  • 一台性能好的电脑(做开发的一定要买台好电脑,至少不要太差吧,至少能同时跑虚拟机,IDE,网页,聊天工具等不要卡)
  • 一个干净的 Win10 系统(mac 系统也可以,但是我没用过就不讨论了,windows 的话还是用 win10 吧,纯净版的)
  • 一个速度快的 vpn(强烈建议,做开发不用 vpn 就是给自己添堵,速度快,至少能看 Youtube 不卡吧)

准备好这些之后,其实就比较简单了,环境使用的是 Homestead 方案,因为这个是官方的,网上关于 Homestead 的搭建有很多版本,大都是为了解决国内网络问题,其实把 vpn 搞好就可以按照官方文档里的来了,我试过几十次了,很顺利,如果没有 vpn 的话,或者是用我的方法布置环境遇到了什么问题,都可以直接留言或者加群 3113961

搭建之前想多说一句:

只要是在命令行中进行的操作,一定要注意看执行过程中输出的文本,有没有 Err 或者 Failed 这样的字眼,如果有的话就是出问题了,要看一下原因,遇到过一些新手,看进程跑完了就不管了,成功还是失败了都不知道,如果中间某步出错了,后面的一般都不会成功,如果是 Warn 就可以根据提示看是否需要处理(英语不好的话开个词典查查,不要假装没看见🤣)

下面是搭建步骤:

安装 VirtualBox

VirtualBox 让我们可以创建虚拟机,本教程是基于 Laravel 5.5 版本,根据文档,需要安装 VirtualBox 5.1,许多人装的时候直接装了个最新版本,但是根据经验,一般都会出问题,所以直接照着文档来,装 5.1 版本的,VirtualBox 会经常让你更新,不要手抖点更新,VirtualBox 5.1 下载地址

安装 Vagrant

Vagrant 直接下载安装最新版即可,Vagrant 下载地址

添加 Vagrant box

这一步通常来说,由于网络原因,会卡死,所以我们要使用 vpn,首先保证你开了 vpn 能上 Youtube 看视频不卡,然后看一下代理服务器地址(一般是127.0.0.1:1080,具体可在浏览器设置中查看),然后打开系统自带的 cmd,给 cmd 设置通过代理服务器访问:

set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080

设置好后,就可以添加 box 了:

vagrant box add laravel/homestead

如果正常的话,会首先下载一个 box,然后自动安装,下载过程可能需要十几分钟或者几十分钟,在下载过程中最好不要动电脑,根据经验,动了电脑容易卡死。。

安装 Homestead 代码

Homestead 代码直接使用 Git 下载(所以电脑上如果没有 Git 环境的话,需要先装 Git)

cd ~ 

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

~ 是一个目录,位置在 C:\users\你的用户名\

由于 Homestead 的 master 分支并不是稳定分支,你应该用打过标签的稳定版本。你可以在Github 发行页面 上找到最新的稳定版本,但是根据经验,用最新的稳定版本有时会出现问题,我一般是使用:7.12.0 这个版本,大家可以用这个

cd Homestead

git checkout v7.12.0

安装好之后,执行下面命令创建配置文件:

init.bat

配置 Homestead.yaml 文件

这个文件在 ~/Homestead/Homestead.yaml,找个编辑器打开它,下面是一个 Homestead.yaml 文件示例:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

folders:
- map: C:/code/laravel
to: /home/vagrant/code

sites:
- map: project1.test
to: /home/vagrant/code/project1/public
- map: project2.test
to: /home/vagrant/code/project2/public

databases:
- project1
- project2

这个文件暂时需要关注的就 3 个地方:

第一个地方,13行中的那个地址,C:/code/laravel,这是我电脑中存放 laravel 项目的目录,你要根据你的实际位置改一下,一定要是一个已经存在的目录

第二个地方,17-20行,也就是:

    - map: project1.test
to: /home/vagrant/code/project1/public
- map: project2.test
to: /home/vagrant/code/project2/public

这里是配置你的项目的,2行为一组(map 是域名,to 是到对应 laravel 项目 public 文件夹的目录),你有几个 laravel 项目,就应该有几组,比如这里我们有两个 laravel 项目,一个叫 project1,一个叫 project2,所以这样写,这里根据自己的实际情况写就行,注意格式必须一模一样,一个空格都不能差

第三个地方,23-24行,也就是:

    - project1
- project2

这里是配置项目对应的数据库的,有几个 laravel 项目,就应该有几行,并且和上面的项目是一一对应的

这个文件其实后面随时都可以改,所以也不用怕写错,好,现在假设你完全没有项目,那可以直接复制下面的代码覆盖你的 Homestead.yaml:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

folders:
- map: C:/code/laravel
to: /home/vagrant/code

sites:
- map: hello.test
to: /home/vagrant/code/hello/public

databases:
- hello

按照上面这个写法,你就需要在 C:/code/laravel 这个目录下有一个叫 hello 的 laravel 项目,这个项目可以后面创建,但是要先把这个目录建出来,也就是在 c 盘下建一个 code 文件夹,再在 code 文件夹下建一个 laravel 文件夹。

修改 Host 文件:

Host 文件在 C:\Windows\System32\drivers\etc\hosts,用编辑器打开它,在最后加上一行:

192.168.10.10  hello.test

这里也是跟项目统一的,有几个项目就要有几行

启动虚拟机

现在进入 Homestead 目录,启动虚拟机

cd ~/Homestead

vagrant up

这一步如果出错的话一般是因为 Homestead.yaml 文件没写对,如果卡在 SSH auth method: private key 一般是因为电脑没开启虚拟化,需要进 BIOS 改一下设置。

搞定!

到这一步,环境就算搭好了,如果你已经有项目的话,应该就可以访问了,如果你是向上面说的还没有创建过项目,现在还需要创建一个叫 hello 的 laravel 项目,下面就来创建:

首先登录虚拟机

cd ~/Homestead

vagrant ssh

稍等一会就可以登录虚拟机,后面的指令有些是在虚拟中执行的,我会在前面加一个前缀 vagrant@homestead: $ ,用于区分,复制的时候注意不要复制到前缀了。登陆之后是在虚拟机的 ~ 目录下,我们要进入 ~/code 目录,这个目录和我们本机的 C:\code\laravel 目录一样,是映射的,用来放所有的 laravel 项目

vagrant@homestead: $ cd ~/code

直接使用 composer 安装一个新的 laravel 项目:

// 先换源
vagrant@homestead: $ composer config -g repo.packagist composer https://packagist.phpcomposer.com

// 安装
vagrant@homestead: $ composer create-project --prefer-dist laravel/laravel hello "5.5.*"

安装好后,在本机浏览器访问 hello.test 即可。

如何新增一个全新的 laravel 项目?

假如我现在已经有了一个或者几个项目,我又想新建一个项目,并且是一个全新的 laravel 项目,如何操作?思路如下:启动虚拟机 -> 登录虚拟机 -> 创建项目 -> 退出虚拟机 -> 修改 Homestead.yaml 和 hosts 文件 -> 更新虚拟机配置 -> 完成

// 启动虚拟机

cd ~/Homestead
vagrant up

// 登录虚拟机
vagrant ssh

// 创建项目,注意项目名字要改成自己的
vagrant@homestead: $ cd ~/code
vagrant@homestead: $ composer create-project --prefer-dist laravel/laravel 你的项目名称 "5.5.*"

// 退出虚拟机
vagrant@homestead: $ exit

// 修改 Homestead.yaml,参照上文配置 Homestead.yaml 文件,只需改两个地方:sites 部分加一组, databases 部分加一行

// 修改 hosts,参照上文配置 hosts 文件,只需加一行

// 更新虚拟机配置
cd ~/Homested
vagrant provision

// 完成了,根据你定义的域名来访问

如何将一个已有的 laravel 项目部署到本机的 Homestead?

假如现在别人给了你一个现有的 laravel 项目的 GitHub 地址,或者说你自己传到 GitHub 上的某个 laravel 项目要在其他的新电脑上重新部署,该如何操作?思路如下:启动虚拟机 -> 登录虚拟机 -> 拉取项目 -> 配置项目 -> 退出虚拟机 -> 修改 Homestead.yaml 和 hosts 文件 -> 更新虚拟机配置 -> 完成,可以看到和创建一个全新的项目类似,唯一区别就是创建项目变成了拉取项目和配置项目,拉取项目就直接使用 git clone,配置项目这个要看项目的要求了,一般项目的 readme 文件中会写出,如果是比较标准的 laravel 项目,其配置过程如下:

// 进入拉取到的项目根目录
vagrant@homestead: $ cd ~/code/someproject

// 安装依赖
vagrant@homestead: $ composer install

// 生成env
vagrant@homestead: $ cp .env.example .env

// 修改env文件,如果不知道如何修改我后面会说

// 生成 laravel-key
vagrant@homestead: $ php artisan key:generate

// 执行数据库迁移(可选)
vagrant@homestead: $ php artisan migrate

// 执行数据填充
vagrant@homestead: $ php artisan db:seed

如何修改 .env 文件?

首先根目录下有一个 .env.example 文件,这个是一个示例文件,默认是没有 .env 文件的,生成 .env 文件就是把 .env.example 文件复制一个拿来改,刚入门的话,只需要改一个地方就行了,那就是第 11 行,DB_DATABASE=homestead,等号后面是数据库名字,这里的名字要填你在 Homestead.yaml 文件中 databases 那部分对应的项目那一行写的数据库名

闲聊

Laravel 真的是一个很好的框架,学会之后,你就可以比较轻松的搭建网站、微信公众号等应用,不仅可以亲手实现一些突然蹦出来的小想法,还可以帮你创造可观的收入。大家搭的过程中如果发现有什么遗漏的,可以留言或者加群 3113961 反馈给我,我会补上去。

阅读 734 评论


A

Artemcew

111

1周前 ·

s

smartklokke test

回复 Artemcew:12121212

6天前 ·

s

smartklokke test

回复 Artemcew:12121212

6天前 ·


b

bestil blomster online

不错不错哟

2个月前 ·


7

788

789

5个月前 ·