Skip to content

yanthink/blog-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

该项目以迁移到 https://github.com/yanthink/pingfan.blog ,今后不再维护

项目概述

该项目基于 Laravel7.0 开发。

功能如下

  • 文章列表 -- Elasticsearch搜索;
  • 文章详情;
  • 微信小程序评论、回复、收藏、点赞;
  • 消息通知 -- 在线时 websocket 广播,离线是邮件通知;
  • 用户认证 -- 登录、退出,小程序扫码登录;
  • 多角色权限管理;
  • 附件上传 -- 支持清除无效的附件;
  • 文章管理 -- 列表、详情、发布、修改、删除;
  • 用户管理 -- 列表、添加、修改、分配角色、分配权限;
  • 在线用户 -- 实时查看在线用户数据;
  • 定时清除无用的附件;
  • Debugbar;

运行环境要求

  • Nginx 1.8
  • PHP >= 7.2.5
  • MySQL 8.0
  • Redis 3.0
  • Elasticsearch 7.0

开发环境部署/安装

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

基础安装

1. 克隆源代码

克隆 blog-api 源代码到本地:

git clone https://github.com/yanthink/blog-api.git

2. 安装扩展包依赖

composer install

3. 生成配置文件

cp .env.example .env

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

APP_URL=http://api.blog.test
...
DB_HOST=localhost
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=

4. 生成秘钥

php artisan key:generate

5. 创建软连接

php artisan storage:link

6. 安装 telescope

php artisan telescope:install
php artisan telescope:publish

telescope 需要安装 bcmath 扩展,否则程序无报错但也无法运行(可以选择不启用,或者注释掉 config/app.php 下面的 TelescopeServiceProvider 服务提供注册)

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

php artisan migrate --seed

8. 生成加密 oauth_clients

php artisan passport:install

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

管理员账号密码如下:

username: admin
password: 888888

8. 安装 elasticsearch

查看 https://www.einsition.com/articles/3

9. 初始化Elasticsearch

php artisan es:init

10. 安装 laravel-echo-server

npm install -g laravel-echo-server
laravel-echo-server client:add

根据情况修改 laravel-echo-server.json.env 配置,最后启动 laravel-echo server

laravel-echo-server start

nginx 配置

location /socket.io {
    proxy_pass http://127.0.0.1:6001;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_redirect off;
    proxy_read_timeout 60s;
}

至此, 安装完成 ^_^。

Releases

No releases published

Packages

No packages published