- 产品名称:LearnKu
- 项目代号:learnku
- 官方地址:https://www.learnku.net
- 特别说明 —— 除站长外其他用户仅允许发表评论
- 用户认证 —— 注册、登录、退出;
- 个人中心 —— 用户个人中心,编辑资料;
- 上传图片 —— 修改头像时候上传图片;
- 表单验证 —— 使用表单验证类;
- 多角色权限管理 —— 允许站长,管理员权限的存在;
- 后台管理 —— 后台数据模型管理;
- 站内通知 —— 文章有新回复;
- 自定义中间件 —— 记录用户的最后登录时间;
- XSS 安全防御;
- 教程 —— 编辑教程,系统分享知识
- 微信支付 —— 优质教程收费系统
- 七牛 —— 静态资源于图片均放在第三方七牛云服务器
- 自动备份 —— MySql 数据库自动备份
- Nginx 1.8+
- PHP 7.0+
- Mysql 5.7+
- Redis 3.0+
本项目代码使用 PHP 框架 Laravel 5.5 开发,本地开发环境使用 Laravel Homestead。 下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 Homestead 安装与设置 进行安装配置。
- 克隆 learnku 源代码到本地:
git clone git@github.com:GucciLee/learnku.git
- 配置本地的 Homestead 环境 编辑 Homestead.yaml 文件, 修改如下:
folders:
- map: ~/my-path/learnku/ # 你本地的项目目录地址
to: /home/vagrant/learnku
sites:
- map: learnku.test
to: /home/vagrant/learnku/public
databases:
- learnku
修改完成后保存,然后执行以下命令应用配置信息修改:
vagrant provision && vagrant reload
- 安装扩展包依赖
composer install // 进入到项目目录
- 生成配置文件
cp .env.example .env // 进入到项目目录
- 生成数据表及生成测试数据
$ php artisan migrate --seed
- 生成秘钥
php artisan key:generate
php artisan jwt:secret
- 配置 hosts 文件
echo "192.168.10.10 learnku.test" | sudo tee -a /etc/hosts
1). 安装 node.js // 直接去官网 https://nodejs.org/en/ 下载安装最新版本。
2). 安装 Yarn // 请安装最新版本的 Yarn —— http://yarnpkg.cn/zh-Hans/docs/install
3). 安装 Laravel Mix
yarn install
4). 编译前端内容
// 运行所有 Mix 任务...
npm run dev
// 运行所有 Mix 任务并缩小输出..
npm run production
5). 监控修改并自动编译
npm run watch
// 在某些环境中,当文件更改时,Webpack 不会更新。如果系统出现这种情况,请考虑使用 watch-poll 命令:
npm run watch-poll
至此, 安装完成 ^_^。
扩展包 | 一句话描述 | 本项目应用场景 |
---|---|---|
guzzlehttp/guzzle | HTTP 请求套件 | 请求百度翻译 API |
barryvdh/laravel-debugbar | 页面调试工具栏 (对 phpdebugbar 的封装) | 开发环境中的 DEBUG |
spatie/laravel-permission | 角色权限管理 | 角色和权限控制 |
mewebstudio/Purifier | 用户提交的 Html 白名单过滤 | 文章内容的 Html 安全过滤,防止 XSS 攻击 |
viacreative/sudo-su | 用户切换 | 开发环境中快速切换登录账号 |
predis/predis | Redis 官方首推的 PHP 客户端开发包 | 缓存驱动 Redis 基础扩展包 |
erusev/parsedown | Markdown 转 Html | 文本编辑显示 |
laravel-lang | 中文语言包 | 翻译 Laravel 自带模板 |
qiniu/php-sdk | 七牛云储存 | 用于存储上传图片 + 静态文件缓存加速 |
jwt-auth | JWT 令牌 | Api 认证 |
intervention/image | 裁剪图片 | 图片上传 |
summerblue/generator:~1.0 | 代码生成器 | 代码生成器 |
hieu-le/active | 为导航栏添加 active 类 |
导航的 Active 状态 |
Guzzle | 强大的 PHP HTTP 请求套件 | 使用 Guzzle 的 HTTP 客户端来请求 百度翻译 接口。 $ composer require "guzzlehttp/guzzle:~6.3" |
PinYin | 基于 CC-CEDICT 词典的中文转拼音工具 | 使用 PinYin 来作为翻译的后备计划 $ composer require "overtrue/pinyin:~3.0" |
Horizon | 为 Laravel Redis 队列提供了一个漂亮的仪表板 | 查看和管理 Redis 队列任务执行的情况 |
spatie/laravel-backup | 自动备份你的 Laravel 程序 | 每天自动备份和清理 MySql 数据库 |
命令行名字 | 说明 | Cron | 代码调用 |
---|---|---|---|
learnku:generate-token | 快速为用户生成 jwt token | 开发调试使用 | postman api 测试 |
名称 | 说明 | 调用时机 |
---|
$ git clone git@github.com:GucciLee/learnku.git learnku
$ composer dump-autoload
$ composer install // 进入到项目目录
$ cp .env.example .env // 进入到项目目录
learnku
$ php artisan migrate
$ php artisan key:generate
$ php artisan jwt:secret
$ chmod 777 -R storage/
$ chmod 777 -R public/uploads/
$ php artisan tinker $
$user = App\Models\User::find(1) $ $user->assignRole('Founder'); exit
功能 | 缓存 | 清除 | 特殊说明 |
---|---|---|---|
1. 配置信息缓存 | php artisan config:cache | php artisan config:clear | ~ |
2. 路由缓存 | php artisan route:cache | php artisan route:clear | ~ |
3. 类映射加载优化 | php artisan optimize --force | php artisan clear-compiled | ~ |
4. 自动加载优化 | composer dumpautoload -o | ~ | 注意:php artisan optimize --force 命令里已经做了这个操作。 |
5. 使用 Memcached 来存储会话 | 文件:config/session.php 修改=》 'driver' => 'memcached', |
~ | ~ |
6. 使用专业缓存驱动器 | 文件:config/session.php 修改=》 'default' => 'redis', |
~ | ~ |