本文讲解本站同款APP部署所需要的后端api——RuleAPI的部署,APP部署详见另一篇文章。
本站同款APP部署详解之RuleAPP
星泽V社博客APP上线了!
RuleAPI
RuleApi,基于typecho1.1正式版数据库,使用JAVA语言Springboot框架,整合redis缓存数据库,COS、OSS对象存储,是目前typecho程序功能最全,接口最完善,用户体验最好,且性能最佳的API程序。集成了用户模块(登陆,注册,邮箱验证,用户查询,用户修改),文章模块,评论模块,分类模块,和上传模块(三合一上传方式,OSS,COS,本地上传均可),在安装完成后,可以进一步扩展typecho网站的功能,并实现更强大的性能,更全面的应用范围。
通过RuleApi,你可以将网站模块化,通过API将用户系统与网站分离,实现自定义的个人中心,基于token的验证机制可以实现多个域名下共用相同的用户系统。
通过RuleApi,还可以实现外置的作者中心投稿管理,甚至给网站额外增加一个功能全面的用户中心,总之无论怎样的功能搭配都可以用API和主网站完全分离但数据共通。
另外,RuleApi将整个网站的数据api化,所以还可以通过它让网站彻底动静分离,实现部分或者全站的js数据渲染,还可以通过它来搭建无数个与主站分离但是数据共通的网站,或者让网站的数据可以被其它网站共享。
最后,RuleApi可以配合开发微信小程序,APP,或者其它的接口化应用,总之更多的功能还可以继续发掘。
项目地址:
安装
因为RuleApi有两种安装方式,一种是一键脚本安装,一种是手动安装,两种的更新会有区别。这里我只演示脚本安装,方便快捷,无脑操作。不要问为什么,一步一步的跟着做就没问题。
首先,要确定服务器上安装了 typecho
,因为RuleApi本质上是 typecho
的扩展,所以连接的也是 typecho
的数据库。然后,安装一个 redis
,这个宝塔都是自带的,在软件商店随便就安装了,无需配置什么,不需要我多说了吧。
1.打开终端,执行如下指令,安装screen
yum install screen
{message type=”info” content=”screen是一款进程保护程序,可以让你就算退出了终端,指令也会继续运行。安装过程会让你输入你的服务端口,端口一般 8080
,然后还有数据库信息,填写你安装 typecho
的数据库信息,然后直接输入y再Enter确定,如果没有也没关系。”/}
2.执行安装脚本
首先创建一个进程保护窗口,再进入opt文件夹,
screen -S api
cd /opt
然后执行RuleApi一键安装脚本,暂时只兼容Centos6以上版本,最好7(测试阶段)
国内节点:
wget https://www.ruletree.club/ruleapi.sh && sh ruleapi.sh install
海外节点 (香港,和境外服务器可以用,如果国内节点失效,也可以删除/opt目录下的ruleapi.sh再尝试这个):
wget https://www.ruletree.club/api/ruleapi.sh && sh ruleapi.sh install
运行成功效果如下:
安装完成后,将服务器 /opt
文件夹中的 apiResult.php
文件,剪切到 typecho
网站的根目录。 apiResult.php
这个文件负责APP的更新推送,后面会在APP部署教程里详细说明。
说明
脚本还提供其它管理选项,分别是如下:
注意,项目启动之后,运行日志将输出到 /opt
目录下 out.txt
文件,如果启动后出现异常或者无法访问,可以打开这个文件查看具体的原因。 /opt/application.properties
为主要的配置文件,如果出现安装脚本配置错误,项目无法正常启动,就可以在这个文件进行修改。
启动RuleAPi
sh /opt/ruleapi.sh start
停止RuleAPi
sh /opt/ruleapi.sh stop
重启RuleAPi
sh /opt/ruleapi.sh restart
删除RuleAPi
sh /opt/ruleapi.sh uninstall
查看帮助信息
sh /opt/ruleapi.sh help
配置
因为脚本安装只是完成基础的安装,更多的设置需要手动编辑 /opt/application.properties
文件,里面就可以配置包括对象存储,数据库前缀,图片key,和其它更加详细的信息等,修改完成后,通过执行重启指令生效。
当然也可以在前台编辑。
访问RuleAPi
宝塔里额外创建一个网站(二级域名,千万别和其它网站共用),网站类型为静态就好,然后找到伪静态设置,加入如下代码保存。
location ^~ / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token';
if ( $request_method = 'OPTIONS' ) {
return 200;
}
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
上述代码的用途是反向代理,并获取真实IP,且开始跨域。宝塔自带的反向代理功能比较复杂,所以省事的话,请采用上述的方法。其中127.0.0.1:8080就是你的内网接口地址,这里只需要改8080这个端口号(如果你定义了其它的话)
整个过程不要开启任何外网端口,切记!!!!
访问刚刚绑定的域名进入主页面后,请点击这个选项,完成最终的安装。
本地图片访问配置
下面这些配置很重要,请严格按照我完全一模一样的填写和配置来,不要在不明白 springboot
机制的时候,就开始自我发挥!
1.部署在 linux
时,如果采用本地上传接口上传图片,那么图片将会存在临时文件夹中,如果项目重启或者更换,将可能导致数据丢失。所以需要手动创建以下文件,并新建一个网站,设置网站目录为如下:
/opt/files/static
接着,继续配置 application.properties
,找到 webinfo.uploadUrl
,修改为上面那个新建网站的域名,记得加http或者https申明。
这里也可以在api前台配置。
邮箱发送和图片key配置
1.邮箱发送直接参考各个邮箱的配置方式,一般只需要配置三个东西。 host
是根据邮箱的不同设置不同,以不同邮箱官方为准,配置文件 application.properties
中代码如下。
spring.mail.host=smtp.qq.com
spring.mail.username=邮箱地址(XXX@qq.com)
spring.mail.password=各种不同邮箱的授权码或者密码
2.APP中有个图库的功能,这里是获取pexels的免费无版权图片,后期可能会基于此开发文章插图功能,所以建议获取。直接前往这个地址注册并验证邮箱即可,完全是免费的: 传送门
然后填入 application.properties
的指定字段
webinfo.pexelsKey=Pexels获取的用户API Key
或前台文本框里
对象存储OSS和COS配置
OSS配置案例如下:
aliyun.endpoint=oss-cn-beijing.aliyuncs.com(这里是地域节点地址)
aliyun.accessKeyId=
aliyun.accessKeySecret=XXX(你的accessKeySecret)
aliyun.bucketName=存储桶名称
aliyun.urlPrefix=存储桶外网访问地址
oss.filePrefix=api(文件夹前缀,必填)
COS配置案例如下:
spring.cos.accessKey=accessKey密钥
spring.cos.secretKey=secretKey密钥
spring.cos.bucket=ap-guangzhou(地域节点)
spring.cos.bucketName=ruletree(存储桶名称)
spring.cos.path=https://cdn.ruletree.club(对象存储外网访问地址)
spring.cos.prefix=api(文件夹前缀,必填)
以上配
RuleApi更新
首先执行更新脚本
sh /opt/ruleapi.sh update
该脚本会下载当前服务器最新版 jar
和最新版的脚本文件,并将新版的新版配置文件 application.properties
下载至 /opt/upfile
,更新过程并不会重启接口,请自己对照 /opt/upfile
中的配置文件,查看是否有新增项,然后修改 /opt/application.properties
,比对无误后,执行重启脚本:
sh /opt/ruleapi.sh restart
到这整个后端的api就安装好啦,下一步就是APP的部署了,这里有不明白的可以留言或者加入我的交流群交流。QQ群:695948781
暂无评论内容