GithubHelp home page GithubHelp logo

基于 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 Projects

ben_gin_study icon ben_gin_study

使用 golang 撸一个在线客服系统(开发中....)

bootstrap4-zhcn-documentation icon bootstrap4-zhcn-documentation

基于bootstrapv4.x最新的中文简体手册,这是Bootstrap官方认同的简体翻译版本,也是目前最完整的Bootstrap4中文翻译版,由Zoomla!逐浪CMS团队维护(最近版本:Bootstrap v4.2.1)

codelf icon codelf

A search tool helps dev to solve the naming things problem.

dplayer icon dplayer

:lollipop: Wow, such a lovely HTML5 danmaku video player

fay icon fay

Fay is an open-source digital human framework integrating language models and digital characters. It offers retail, assistant, and agent versions for diverse applications like virtual shopping guides, broadcasters, assistants, waiters, teachers, and voice or text-based mobile assistants.

flowlong icon flowlong

飞龙工作流 FlowLong 🐉 真正的国产工作流引擎、json 格式实例模型、仿飞书钉钉审批流程设计器、🚩为**特色审批匠心打造❗

forest-blog icon forest-blog

:seedling:ForestBlog 是基于 go 语言开发的,无第三方Go依赖的,适合用来学习和展示 markdown 文档的精美博客:)

go-demo icon go-demo

学习go语言过程中写的一些例子和小项目,包括基础库使用、设计模式、面试易错点、工具类、对接第三方等

gpt-web-java icon gpt-web-java

基于JDK8 AI 聊天机器人!微信公众号 Midjourney画图、卡密兑换、web 支持ChatGPT、Midjourney画图、sd画图,卡密兑换,易支付,公众号引流,邮件注册🔥

jsherp icon jsherp

华夏ERP基于SpringBoot框架和SaaS模式,立志为中小企业提供开源好用的ERP软件,目前专注进销存+财务功能。主要模块有零售管理、采购管理、销售管理、仓库管理、财务管理、报表查询、系统管理等。支持预付款、收入支出、仓库调拨、组装拆卸、订单等特色功能。拥有库存状况、出入库统计等报表。同时对角色和权限进行了细致全面控制,精确到每个按钮和菜单。

jszip icon jszip

Create, read and edit .zip files with Javascript

learnku icon learnku

learnku.net 网站使用 laravel5.5 重新架构

tp51 icon tp51

基于 thinkphp5.1 的日常功能示例

vue_study icon vue_study

基于 vue2.6 的学习环境 https://www.learnku.net/course/books/1

wxxcx icon wxxcx

收银系统, 微信小程序

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.