2.2. 创建应用
做好准备
由于我们接下来的开发都会在 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/
创建 LaraZhihu 应用
下面让我们来使用 Composer 创建一个名为 larazhihu 的应用,后面我们将基于这个应用做更多的功能完善:
$ cd ~/Code
$ composer create-project laravel/laravel larazhihu --prefer-dist "9.*"
中间省略掉安装细节,安装成功后你会看到如下界面():
修改 hosts
每个 Laravel 项目创建完成后的第一步,即是对 Homestead 进行配置,让应用能在 Homestead 的开发环境上跑起来。
为了方便记忆,一般我们都会将 IP 映射为域名,我们能够通过设置 hosts 文件来指定 IP 与域名之间的映射关系,由于我们在 Homestead 上默认使用 192.168.10.10
来作为虚拟机的 IP 的地址,因此我们需要在系统的 hosts
文件中将域名指向该 IP 上。
Mac 下 Hosts 文件地址:
/etc/hosts
Windows 下打开 Hosts 文件地址:
C:/Windows/System32/Drivers/etc/hosts
打开文件,在 hosts
文件最后面新增下面一行以完成设置:
192.168.10.10 zhihu.test
新增站点
如果你安装了 Sublime Text,可通过运行下面命令打开 Homestead.yaml
文件:
> subl ~/Homestead/Homestead.yaml
在 Homestead.yaml
文件中新增 LaraZhihu
应用的 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.test
to: /home/vagrant/Code/Laravel/public
- map: zhihu.test # <--- 这里
to: /home/vagrant/Code/larazhihu/public # <--- 这里
databases:
- homestead
- zhihu # <--- 这里
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
扩展阅读: 如何开启 NFS 支持,请查阅 —— Wiki:Laravel Homestead:开启 NFS 解决站点响应缓慢
我们主要设置了 sites
和 databases
两项。 sites
会将域名 larazhihu.test
映射到虚拟机的 /home/vagrant/Code/larazhihu/public
文件夹上,而 databases
则为新创建的项目指定数据库名。
重启虚拟机
运行下面命令来使其更改生效:
> cd ~/Homestead && vagrant provision && vagrant reload
.env 文件
接下来,我们还需要对应用根目录下的 .env
文件进行相关设置,如下:
.env
APP_NAME=Zhihu
.
.
.
APP_URL=http://zhihu.test
.
.
.
DB_DATABASE=zhihu
DB_USERNAME=homestead
DB_PASSWORD=secret
.
.
.
访问应用
现在让我们在 Chrome 浏览器中打开 zhihu.test 你应该能看到有如下界面显示:
Git 代码版本控制
为了在接下来更好的追踪项目代码的更改,我们还需要将新建的 Laravel 项目纳入到 Git 版本管理中:
$ cd ~/Code/larazhihu
$ git init
$ git add -A
$ git commit -m "init commit"