@[Laraval|后端|框架]
在Homestead/目录下打开Homestead.yaml文件,大概长这样
---
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
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
这部分都是统一的,不需要改动
authorize 选项是指派登录虚拟机授权连接的公钥文件,此文件填写的是主机上的公钥文件地址,虚拟机初始化时,此文件里的内容会被复制存储到虚拟机的 /home/vagrant/.ssh/authorized_keys文件中,从而实现 SSH 免密码登录。在这里我们默认填写即可。
authorize: ~/.ssh/id_rsa.pub
keys 是数组选项,填写的是本机的 SSH 私钥文件地址。虚拟机初始化时,会将此处填写的所有 SSH 私钥文件复制到虚拟机的 /home/vagrant/.ssh/ 文件夹中,从而使虚拟机能共享主机上的 SSH 私钥文件,使虚拟机具备等同于主机的身份认证。
keys:
- ~/.ssh/id_rsa
同时也可用于连接github,具体实现可以看我的git教程
教程中说需要将公钥和私钥一起同步到虚拟机中,但是我忘了做这一项,目前还没碰到问题
意思是说,keys设置成这样
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
生成SSH key
如果已经有,就可以跳过了,如果没有,请参照git教程中生成SSH Key进行操作
folders:
- map: ~/Code
to: /home/vagrant/Code
map
对应本机文件夹to
对应Homestead上的文件夹 ~/Code
文件夹 cd ~
mkdir Code
站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面 sites
配置所示,将 homestead.test
映射到一个 Laravel
项目的 public 目录上。这一行配置,会命令 Homestead 为我们新建一个 Nginx 站点,并且把 Web Root 配置到指定目录下。Laravel 应用的 Nginx 站点 Web Root 配置,默认就是在根目录下的 public 目录。
先统一设置为
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
另外,为了绑定虚拟机站点,请在C:/windows/System32/Drivers/etcc/host文件最后加入一句
192.168.10.10 homstead.test
设置好后,即可用浏览器访问站点homestead.test
配置数据库名称,这里默认即可
databases:
- homestead
Vagrent常用命令:
命令行 | 说明 |
---|---|
vagrant init | 初始化 vagrant |
vagrant up | 启动 vagrant |
vagrant halt | 关闭 vagrant |
vagrant ssh | 通过 SSH 登录 vagrant(需要先启动 vagrant) |
vagrant provision | 重新应用更改 vagrant 配置 |
vagrant destroy | 删除 vagrant |
1.启动Homestead
git中输入
cd ~/Homestead && vagrant up
配置完后,再使用ssh链接
vagrant ssh
成功后就是这样
在虚拟机输入exit即可退出
尝试关闭vagrant
这样 ,基本就配置完了
打开Homestead 虚拟机,命令行敲入
$ cd ~/Code
$ composer create-project laravel/laravel Laravel --prefer-dist "5.5.*"
生成Lavarel项目速度很快,如果一分钟不见响应,这个我也碰到了,不过没关系
- 强制退出git,重新打开虚拟机
- 这个时候应该是打不开的,会让你指定虚拟机,按提示敲入vagrant global-status找到虚拟机id打开即可
- 对应id卸载虚拟机,重新安装配置,仔细看界面上显示的log信息
- 可能会有两个错误,一个warning说是找不到metadata,json文件,另一个是版本不太匹配
- 我是第一个问题,也就是一开始我说的那个坑
- 重新安装,不删那个文件即可
再次输入命令,即可新建一个项目,打开homestead.test即可看到页面
打开~/Code/Lavarel/路径,可以看到结构
文件夹名称 | 简介 |
---|---|
app | 应用程序的业务逻辑代码存放文件夹 |
app/Console | 存放自定义 Artisian 命令文件 |
app/Http/Controllers | 存放控制器文件 |
app/Http/Middleware | 存放「中间件」文件 |
bootstrap | 框架启动与自动加载设置相关的文件 |
composer.json | 应用依赖的扩展包 |
composer.lock | 扩展包列表,确保这个应用的副本使用相同版本的扩展包 |
config | 应用程序的配置文件 |
database | 数据库操作相关文件(数据库迁移和数据填充) |
node_modules | 存放 NPM 依赖模块 |
package.json | 应用所需的 NPM 包配置文件 |
phpunit.xml | 测试工具 PHPUnit 的配置文件 |
public | 前端控制器和资源相关文件(图片、JavaScript、CSS) |
readme.md | 项目介绍说明文件 |
resources | 应用资源 |
resources/assets | 未编译的应用资源文件(图片JavaScript、CSS) |
resources/lang | 多语言文件 |
resources/views | 视图文件 |
routes/api.php | 用于定义 API 类型的路由 |
routes/channels.php | 事件转播注册信息 |
routes/console.php | 用于定义 Artisan 命令 |
routes/web.php | 用于定义 Web 类型的路由(重点,大部分情况下本书会用到) |
server.php | 使用 PHP 内置服务器时的 URL 重写(类似于 Apache 的 “mod_rewrite” ) |
storage | 编译后的视图、基于会话、文件缓存和其它框架生成的文件 |
storage/app | 目录可用于存储应用程序使用的任何文件 |
storage/framework | 目录被用于保存框架生成的文件及缓存 |
storage/logs | 应用程序的日志文件 |
tests | 应用测试相关文件 |
vendor Composer | 依赖模块 |
webpack.mix.js | Laravel 的前端工作流配置文件 |
yarn.lock | Yarn 依赖版本锁定文件 |
.gitignore | 被 Git 所忽略的文件 |
.env | 环境变量配置文件 |
Laravel 在项目创建时会自动为我们生成一个 welcome.blade.php 文件,这个文件将被用于渲染 Laravel 的默认视图。现在,让我们打开该文件,复制替换为自己的HTML代码即可
resources/views/welcome.blade.php