逸侨Blog

逸侨Blog

188 下载 2 关注
最后更新于 2018-10-12
逸侨开源 Blog

项目概述

  • 产品名称:yiqiaoBlog
  • 项目代号:yiqiao
  • 官方地址:yiqiao.me

yiqiaoBlog 是一个简洁的博客系统,使用 Laravel5.5 编写而成。

演示图片

功能如下

  • 用户认证 —— 注册、登录、退出;
  • 个人中心 —— 用户个人中心,编辑资料;
  • 用户授权 —— 作者才能删除自己的内容;
  • 上传图片 —— 修改头像和编辑话题时候上传图片;
  • 表单验证 —— 使用表单验证类;
  • 文章发布时自动 Slug 翻译,支持使用队列方式以提高响应;
  • 站点『热门文章』计算,一小时计算一次;
  • 邮件通知 —— 发送新回复邮件通知,队列发送邮件;
  • 站内通知 —— 话题有新回复;
  • 自定义 Artisan 命令行 —— 自定义热门文章计算命令;
  • 自定义 Trait —— 热门文章的业务逻辑实现;
  • XSS 安全防御;

运行环境要求

  • Nginx 1.8+
  • PHP 7.1+
  • Mysql 5.7+
  • Redis 3.0+
  • Memcached 1.4+

开发环境部署/安装

本项目代码使用 PHP 框架 Laravel 5.5 开发,本地开发环境使用 Laravel Homestead

基础安装

1. 克隆源代码

克隆 yiqiao_blog 源代码到本地:

> git clone git@github.com:PerJoy/yiqiao_blog.git

2. 配置本地的 Homestead 环境

1). 运行以下命令编辑 Homestead.yaml 文件:

homestead edit

2). 加入对应修改,如下所示:

folders:
    - map: ~/my-path/yiqiao_blog/ # 你本地的项目目录地址
      to: /home/vagrant/yiqiao_blog

sites:
    - map: blog.local
      to: /home/vagrant/yiqiao_blog/public

databases:
    - yiqiao_blog

3). 应用修改

修改完成后保存,然后执行以下命令应用配置信息修改:

homestead provision

随后请运行 homestead reload 进行重启。

3. 安装扩展包依赖

composer install

4. 生成配置文件

cp .env.example .env

你可以根据情况修改 .env 文件里的内容,如数据库连接、缓存、邮件设置等。

5. 生成秘钥

php artisan key:generate

6. 生成数据表及生成测试数据

在 Homestead 的网站根目录下运行以下命令

$ php artisan migrate --seed

初始的用户角色权限已使用数据迁移生成。

7. 配置 hosts 文件

echo "192.168.10.10   blog.local" | 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

链接入口

  • 首页地址:http://blog.local/
  • 管理后台:http://blog.local/admin

管理员账号密码如下:

username: admin
password: secret

至此, 安装完成 ^_^。

扩展包使用情况

扩展包 一句话描述 本项目应用场景
guzzlehttp/guzzle HTTP 请求套件 请求百度翻译 API
Intervention/image 图片处理功能库 用于图片裁切
mewebstudio/captcha 验证码 用于用户注册过滤恶意注册
mewebstudio/Purifier 用户提交的 Html 白名单过滤 帖子内容的 Html 安全过滤,防止 XSS 攻击
naux/sendcloud 邮件发送 用于用户注册发送激活邮件
laravel/horizon 队列监控 队列监控命令与页面控制台 /horizon
predis/predis Redis 官方首推的 PHP 客户端开发包 缓存驱动 Redis 基础扩展包
barryvdh/laravel-debugbar 页面调试工具栏 (对 phpdebugbar 的封装) 开发环境中的 DEBUG

自定义 Artisan 命令

命令行名字 说明 Cron 代码调用
yiqiao:calculate-hot-articles 生成热门文章 一小时运行一次

队列清单

名称 说明 调用时机
TranslateSlug.php 将话题标题翻译为 Slug ArticleObserver 事件 saved()
NotifySomeOne.php 通知评论者有新回复 文章被评论以后
下载 逸侨Blog

如果不能下载请 联系我们