Git Product home page Git Product logo

learnku's Introduction

基于 Laravel 5.5 开发的个人项目

项目概述

功能如下

  • 特别说明 —— 除站长外其他用户仅允许发表评论
  • 用户认证 —— 注册、登录、退出;
  • 个人中心 —— 用户个人中心,编辑资料;
  • 上传图片 —— 修改头像时候上传图片;
  • 表单验证 —— 使用表单验证类;
  • 多角色权限管理 —— 允许站长,管理员权限的存在;
  • 后台管理 —— 后台数据模型管理;
  • 站内通知 —— 文章有新回复;
  • 自定义中间件 —— 记录用户的最后登录时间;
  • XSS 安全防御;
  • 教程 —— 编辑教程,系统分享知识
  • 微信支付 —— 优质教程收费系统
  • 七牛 —— 静态资源于图片均放在第三方七牛云服务器
  • 自动备份 —— MySql 数据库自动备份

运行环境要求

  • Nginx 1.8+
  • PHP 7.0+
  • Mysql 5.7+
  • Redis 3.0+

开发环境部署/安装

本项目代码使用 PHP 框架 Laravel 5.5 开发,本地开发环境使用 Laravel Homestead。 下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 Homestead 安装与设置 进行安装配置。

基础安装

  1. 克隆 learnku 源代码到本地:
git clone [email protected]:learnku/learnku.git
  1. 配置本地的 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
  1. 安装扩展包依赖
composer install      	// 进入到项目目录
  1. 生成配置文件
cp .env.example .env    // 进入到项目目录
  1. 生成数据表及生成测试数据
$ php artisan migrate --seed
  1. 生成秘钥
php artisan key:generate

php artisan jwt:secret
  1. 配置 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 数据库

自定义 Artisan 命令

命令行名字 说明 Cron 代码调用
learnku:generate-token 快速为用户生成 jwt token 开发调试使用 postman api 测试

队列清单

名称 说明 调用时机

生产环境部署

0. nginx 或者 apache 配置

1. 克隆 learnku 源代码到本地:

$ git clone [email protected]:GucciLee/learnku.git learnku

2. 安装扩展包依赖

$ composer dump-autoload

$ composer install // 进入到项目目录

3. 生成配置文件

$ cp .env.example .env // 进入到项目目录

4. 创建数据库

learnku

5. 生成数据表

$ php artisan migrate

6. 生成秘钥

$ php artisan key:generate

$ php artisan jwt:secret

7. 赋予项目权限 // 一定要给与权限,否则会报 500 错误

$ chmod 777 -R storage/

$ chmod 777 -R public/uploads/

8. 设置管理员

$ php artisan tinker $ $user = App\Models\User::find(1) $ $user->assignRole('Founder'); exit

9. 程序优化

功能 缓存 清除 特殊说明
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', ~ ~

learnku's People

Contributors

learnku avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.