2. 基础项目 Larabbs
说明#
为了方便,我们将会使用 LaraBBS 作为基础项目,来配合讲解课程要点。
本课程属于知识型教程,不要求您像实战课程一样一步步跟着操作。当然,有条件的情况下,还是建议您跟着操作,这样会加深记忆。
接下来开始在本地安装此项目。
注:学习过 L02 的同学,如果你已经部署好了 LaraBBS 的开发环境,可以跳过这一步。
开发环境#
我们有专门的文档来讲解开发环境布置,请前往学习此课程:Laravel 开发环境部署 。
做好准备#
由于我们接下来的开发都会在 Homestead 上进行,因此,在开始本章教程之前,请保证你的 Homestead 虚拟机已成功开启并登录。使用下面命令来启动和登录 Homestead:
> cd ~/Homestead && vagrant up
> vagrant ssh
在虚拟机中进入 Code 文件夹:
$ cd ~/Code
注意:本书中因为虚拟机的存在,我们会有两个运行命令行的环境,一个是主机,另一个是 Homestead 虚拟机。我们会在命令的前面使用『命令行提示符』来区分主机和 Homestead。请记住以 > 开头的命令是运行在主机里,$ 开头的命令是运行在 Homestead 虚拟机里。详见 写作约定 - 命令行提示符。
Composer 加速#
在创建项目之前,我们先在虚拟机中运行以下命令来实现 Composer 安装加速 :
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
安装 LaraBBS 应用#
我们需要检出 LaraBBS 项目源码:
$ cd ~/Code
$ git clone https://github.com/summerblue/larabbs
$ cd larabbs
$ git checkout L02_8.x
$ composer install
中间省略掉安装细节…
修改 hosts#
每个 Laravel 项目创建完成后的第一步,即是对 Homestead 进行配置,让应用能在 Homestead 的开发环境上跑起来。
为了方便记忆,一般我们都会将 IP 映射为域名,我们能够通过设置 hosts 文件来指定 IP 与域名之间的映射关系,由于我们在 Homestead 上默认使用 192.168.10.10
来作为虚拟机的 IP 的地址,因此我们需要在系统的 hosts
文件中将域名指向该 IP 上。
Mac 下打开 Hosts 文件:
> subl /etc/hosts
Windows 下打开 Hosts 文件:
> subl C:/Windows/System32/Drivers/etc/hosts
Windows 下,如果你没有集成 subl 命令的话, 请使用编辑器直接打开文件,文件路径在 C:\Windows\System32\Drivers\etc\hosts 。
文件成功打开后,在 hosts 文件最后面新增下面一行以完成设置:
192.168.10.10 larabbs.test
因为最近 .dev
.app
域名在谷歌浏览器中被强制转跳到 https,所以我们使用 .test。
新增站点#
如果你安装了 Sublime Text,可通过运行下面命令打开 Homestead.yaml 文件:
> subl ~/Homestead/Homestead.yaml
在 Homestead.yaml 文件中新增 larabbs 应用的 sites 和 databases 的相关设置:
---
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
- map: larabbs.test # <--- 这里
to: /home/vagrant/Code/larabbs/public # <--- 这里
databases:
- homestead
- larabbs # <--- 这里
variables:
- key: APP_ENV
value: local
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 93000
# to: 9300
# - send: 7777
# to: 777
# protocol: udp
我们主要设置了 sites
和 databases
两项。 sites
会将域名 larabbs.test
映射到虚拟机的 /home/vagrant/Code/larabbs/public
文件夹上,而 databases
则为新创建的项目指定数据库名。
重启虚拟机#
在我们每次对 Homestead.yaml 文件进行了更改之后,都需要运行下面命令来使其更改生效:
> cd ~/Homestead && vagrant provision && vagrant reload
vagrant provision
是命令 Vagrant 重新加载Homestead.yaml
配置;vagrant reload
是重启虚拟机使更改生效。
.env 文件#
复制一份 .env
$ cp .env.example .env
接下来,我们还需要对应用根目录下的 .env 文件进行设置,为应用指定数据库名称 larabbs,在配置一下邮件,方便测试。
.env
.
.
.
APP_URL=http://larabbs.test
.
.
.
DB_DATABASE=larabbs
DB_USERNAME=homestead
DB_PASSWORD=secret
.
.
.
MAIL_HOST=localhost
MAIL_PORT=1025
初始化命令#
$ php artisan key:generate
$ php artisan migrate --seed
访问应用#
现在让我们在 Chrome 浏览器中打开 larabbs.test 你应该能看到有如下界面显示: