# api.yike.io **Repository Path**: mirrors_overtrue/api.yike.io ## Basic Information - **Project Name**: api.yike.io - **Description**: 一刻社区后端 API 源码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-07 - **Last Updated**: 2025-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Yike.io

[![Build Status](https://travis-ci.org/overtrue/api.yike.io.svg?branch=master)](https://travis-ci.org/overtrue/api.yike.io) 此项目为 https://yike.io 的后端 API,基于 Laravel 5 开发。 > 🏵前端源码:https://github.com/overtrue/yike.io 开源中国 Gitee 仓库:[![Fork me on Gitee](https://gitee.com/overtrue/api.yike.io/widgets/widget_3.svg)](https://gitee.com/overtrue/api.yike.io) > 🚨此次开源只是应大家的要求,所以请不要联系我咨询任何使用问题,遇到问题请自行解决,熟读 Laravel 文档。 > 如果你有兴趣参与改进,请直接 PR 即可。 > 🎬快速上手视频:[053. 优秀的开源社区——yike.io](https://learnku.com/courses/laravel-package/yikeio/2505) ## 运行环境要求 - Nginx 1.8+ - PHP 7.1+ - MySQL 5.7.7+ - Redis 3.0+ - ElasticSearch 5.* - [ElasticSearch ik 插件](https://github.com/medcl/elasticsearch-analysis-ik) ## 开发环境部署/安装 本项目代码使用 PHP 框架 [Laravel 5](https://learnku.com/docs/laravel/5.5) 开发,本地开发环境使用 [Laravel Homestead](https://learnku.com/docs/laravel/5.5/homestead/1285)。 下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 [Homestead 安装与设置](https://learnku.com/docs/laravel/5.5/homestead/1285#installation-and-setup) 进行安装配置。 ### 基础安装 #### 克隆源代码 克隆源代码到本地: > git clone git@github.com:overtrue/api.yike.io.git #### 配置本地的 Homestead 环境 1). 运行以下命令编辑 Homestead.yaml 文件: ```shell homestead edit ``` 2). 加入对应修改,如下所示: ``` folders: - map: ~/my-path/api.yike.io/ # 你本地的项目目录地址 to: /home/vagrant/api.yike.io sites: - map: api.yike.io.test to: /home/vagrant/api.yike.io/public databases: - api_yike_io ``` 3). 应用修改 修改完成后保存,然后执行以下命令应用配置信息修改: ```shell homestead provision ``` 随后请运行 `homestead reload` 进行重启。 #### 安装扩展包依赖 composer install #### 生成配置文件 ``` cp .env.example .env ``` 你可以根据情况修改 `.env` 文件里的内容,如数据库连接、缓存、邮件设置等: ``` APP_URL=http://api.yike.io.test ... DB_HOST=localhost DB_DATABASE=api_yike_io DB_USERNAME=homestead DB_PASSWORD=secret ``` #### 生成数据表及生成测试数据 在 Homestead 的网站根目录下运行以下命令 ```shell $ php artisan migrate --seed ``` 初始的用户角色权限已使用数据迁移生成。 #### 生成秘钥 ```shell $ php artisan key:generate ``` #### Passport 初始化 ```shell $ php artisan passport:install ``` 将生成的 password grant 对应的 id 与 secret 记录下来,用于配置 env 变量。 ``` PASSPORT_PASSWORD_CLIENT_ID= PASSPORT_PASSWORD_CLIENT_SECRET= ``` 如果你忘记了,就去找 `oauth_clients` 表中找吧。 #### 配置 hosts 文件 echo "192.168.10.10 api.yike.io.test" | sudo tee -a /etc/hosts #### 其它服务配置 ##### 腾讯 007 防水墙 去 [腾讯防水墙](https://007.qq.com/) 注册账号,创建验证码服务(你可能需要创建两个验证,一个用于发布文章,一个用于注册账号),获取对应的配置填写到 `.env` 中: ```env # 用于发布文章的验证码 CAPTCHA_ID_PUBLISH= CAPTCHA_SECRET_PUBLISH= # 用于用户注册用的验证码 CAPTCHA_ID_REGISTER= CAPTCHA_SECRET_REGISTER= ``` ##### 帖子搜索服务 帖子搜索基于 [ElasticSearch](https://www.elastic.co/) 实现,所以你需要在任何机器上部署一个 ES 服务,然后将地址与索引名称配置到: ```env ELASTICSEARCH_INDEX=yike ELASTICSEARCH_HOST=http://127.0.0.1:9200 ``` ##### 敏感词配置 请自行寻找敏感词库,将敏感词放置于 `storage/SensitiveWords.txt` 中,每行一个: ```bash 敏感词1 敏感词2 ... ``` ### 链接入口 * 首页地址:http://api.yike.io.test * 管理后台:没做 管理员账号请自己添加 UserSeeder 创建。 至此, 安装完成 ^_^。 ## 扩展包使用情况 | **扩展包** | **一句话描述** | **本项目应用场景** | | ---- | ---- | ---- | | [overtrue/easy-sms](https://github.com/overtrue/easy-sms) | 多网关短信发送组件 | 发送验证码 | | [overtrue/laravel-emoji](https://github.com/overtrue/laravel-emoji) | emoji 转换组件 | 帖子与评论 emoji 解析 | | [overtrue/laravel-filesystem-qiniu](https://github.com/overtrue/laravel-filesystem-qiniu) | 七牛 CDN SDK | 帖子内容图片存储 | | [overtrue/laravel-follow](https://github.com/overtrue/laravel-follow) | Laravel 用户关系组件 | 用户关注与帖子订阅 | | [overtrue/laravel-lang](https://github.com/overtrue/laravel-lang) | Laravel 多语言 | 报错信息本地化 | | [overtrue/laravel-mail-aliyun](https://github.com/overtrue/laravel-mail-aliyun) | 阿里云邮件 SDK | 发送通知邮件 | | [overtrue/laravel-socialite](https://github.com/overtrue/laravel-socialite) | 社交登录组件 | 用户使用第三方登录 | | [overtrue/laravel-uploader](https://github.com/overtrue/laravel-uploader) | Laravel 上传功能封装 | 帖子内容图片上传 | | [overtrue/laravel-query-logger](https://github.com/overtrue/laravel-query-logger) | Laravel SQL 监听工具 | 开发环境查看 SQL 记录 | | [Intervention/image](https://github.com/Intervention/image) | 图片处理功能库 | 用于图片裁切 | | [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) | HTTP 请求套件 | 我也记不得,反正就是要用 | | [predis/predis](https://github.com/nrk/predis.git) | Redis 官方首推的 PHP 客户端开发包 | 缓存驱动 Redis 基础扩展包 | | [mewebstudio/Purifier](https://github.com/mewebstudio/Purifier) | 用户提交的 Html 白名单过滤 | 帖子内容的 Html 安全过滤,防止 XSS 攻击 | | [laravel/passport](https://github.com/laravel/passport) | 用户授权 | 基于 Personal Access Token 的前后端用户认证 | | [laravel/horizon](https://github.com/laravel/horizon) | 队列监控面板 | 监听队列使用情况 | | [laravolt/avatar](https://github.com/laravolt/avatar) | 生成用户头像 | 用户头像 | | [sentry/sentry-laravel](https://github.com/getsentry/sentry-laravel) | Sentry 报错监控 | 监控系统错误 | | [spatie/laravel-activitylog](https://github.com/spatie/laravel-activitylog) | 用户行为记录 | 个人中心的用户动态 | | [spatie/laravel-url-signer](https://github.com/spatie/laravel-url-signer) | URL 加密 | 用户激活链接 | | [tamayo/laravel-scout-elastic](https://github.com/ErickTamayo/laravel-scout-elastic) | Laravel Scout ES 驱动 | 帖子搜索 | | [tucker-eric/eloquentfilter](https://github.com/tucker-eric/eloquentfilter) | 模型字段过滤 | 接口字段过滤 | | [vinkla/hashids](https://github.com/vinkla/hashids) | HashID 实现 | 暂时好像没用到 | | [beyondcode/laravel-self-diagnosis](https://github.com/beyondcode/laravel-self-diagnosis) | Laravel 基础环境检查工具 | 检查配置是否正确 | ## 自定义 Artisan 命令 | 命令行名字 | 说明 | Cron | 代码调用 | | --- | --- | --- | --- | | `es:init` | 初始化 ES 模板 | 无 | 无 | ## PHP 扩展包开发 > 想知道如何从零开始构建 PHP 扩展包? > > 请关注我的实战课程,我会在此课程中分享一些扩展开发经验 —— [《PHP 扩展包实战教程 - 从入门到发布》](https://learnku.com/courses/creating-package) ## License MIT