这个教程将从搭建环境开始,讲述RuleApi从打包到发布的全过程,而且作为springboot开发的应用(现在这个框架已经特别流行),所以完全不像大部分人以为的那样,部署起来复杂麻烦。本质上,根本不需要懂JAVA,也不需要懂什么tomcat的配置,直接打包和运行命令就可以直接开始了。
RuleApi是一套功能完善的typecho接口程序。
本文转载自规则之树 作者不暇
RuleApi详细安装

下载地址(安装就下载这个包,切记!!!持续更新):

Github(欢迎star)

Gitee(欢迎star)

接口文档:点击进入
所有安装问题都可以加入QQ交流群讨论,我会耐心解答:675025692

最新的一键安装脚本已经出炉,可以迅速完成基础配置
[RuleApi一键安装脚本,傻瓜式配置,超快速运行]
如果不想看文字,也可以看视频

环境准备:

1.首先,RuleApi是可以不和网站安装在同一个服务器的,在安装之前,请将项目目录底下的apiResult.php上传到typecho网站的目录底下。编辑apiResult.php就可以设置更新接口,具体可以自己摸索。

2.随后,我使用的部署环境是CentOS,安装了宝塔面板,所以首先要做的,是确认安装了nginx或者apache(一般只要装了网站都有),然后去宝塔的软件商店安装Redis(没用宝塔面板就自己指令安装吧,也都差不多)。安装完成后为了安全考虑可以设置密码。

3.安装java环境,可以用我准备好的jdk的linux版安装包,通过宝塔面板上传到服务器根目录的opt目录下,然后解压,重命名为jdk1.8

jdk下载地址

4.然后用宝塔面板打开服务器根目录下的/etc里面的profile文件,将如下丢到文件的最后。

export JAVA_HOME=/opt/jdk1.8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin


5.最后打开终端,执行如下指令,环境安装完成

source /etc/profile

项目运行:

1.打开linux终端,安装screen,主要是用来保护进程。

yum install screen

2.确认一下java环境安装是否正常,如果不正常就再执行一次source /etc/profile,或者检查jdk的文件目录和profile文件的配置。

3.将下载的安装包解压到服务器目录,比如我解压在opt,然后直接编辑application.properties文件,设置从运行的端口,数据库,到redis,到网站基本信息,到缓存…最后到对象存储等。然后务必记得将发布包目录下的apiResult.php文件放在typecho网站的根目录,主要用于协助安装和更新。
1

因为有很多人在数据库配置那里遇到问题,可以参考如下信息配置。另外,redis默认安装完是没有密码的,可以自己设置,也可以完全不动,毕竟大多数时候是内网环境。

# mysql配置
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/数据库名?characterEncoding=UTF-8
spring.datasource.username=数据库用户名
spring.datasource.password=数据库密码
# mysql数据表前缀,如果没改过就别动
mybatis.configuration.variables.prefix=typecho

4.进入你存放安装包(里面带jar文件)文件夹,依次执行如下运行命令

screen -S 窗口名称(用英文)
cd /opt
java -jar 打包出来的名称.jar

5.运行成功效果如下

到上一步,就可以直接作为接口了,但是为了安全考虑,还需要配置域名。其实也很简单,宝塔面板额外创建网站,网站类型为静态就好,然后找到伪静态设置,加入如下代码保存。我的网站复制会自带版权信息,记得删除掉。

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;
}

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:不暇
链接:https://www.ruletree.club/archives/2661/
来源:https://www.ruletree.club/

上述代码的用途是反向代理,并获取真实IP,且开始跨域。宝塔自带的反向代理功能比较复杂,所以省事的话,请采用上述的方法。在这个基础上,可以继续挂cdn之类的。其中127.0.0.1:8080就是你的内网接口地址,这里只需要改8080这个端口号(如果你定义了其它的话)

整个过程不要开启任何外网端口,切记!!!!
6.访问运行主页的时候,记得点击“初次安装执行”,这样就可以完成全部的安装步骤。(其实本来这里不需要用户执行的,但是自己来一下会更有参与感),这里多次执行也没事,程序会自动识别是否创建数据表或者字段。新版本开始,会有可视化管理中心,默认的密码是123456,进入后请及时修改。

7.这里建议安装宝塔免费的nginx防火墙,可以有效防止爆破接口或者刷垃圾数据。已经有用户出现通过快捷登陆接口刷垃圾数据的情况,后续的接口更新我也会做处理。

本地图片访问配置(非一键脚本安装)

下面这些配置很重要,请严格按照我完全一模一样的填写和配置来,不要在不明白springboot机制的时候,就开始自我发挥!

1.部署在linux时,如果采用本地上传接口上传图片,那么图片将会存在临时文件夹中,如果项目重启或者更换,将可能导致数据丢失。所以需要手动创建以下文件,并新建一个网站,设置网站目录为如下:

/opt/files/static

2.接着,在API的可视化配置中心,设置图片访问的网址。

注意:对于老版本用户,也就是2022/03/03之前安装RuleApi的用户,如果使用的是本地上传接口,请将/opt/file:/opt/RuleApi.jar!/BOOT-INF/classes!下的static文件,移动到/opt/file/static中,如果没有就自己创建。

邮箱发送和图片key配置

1.邮箱发送直接参考各个邮箱的配置方式,一般只需要配置三个东西。host是根据邮箱的不同设置不同,以不同邮箱官方为准,配置文件application.properties中代码如下。

spring.mail.host=smtp.qq.com
spring.mail.username=邮箱地址([email protected])
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(文件夹前缀,必填)

更新和停止
具体的更新可以看这个教程:RuleApp和RuleApi更新教程,后端及APP的快捷更新

1.首先查询你的jar是否在运行。

ps aux | grep  打包出来的名称.jar

2.然后根据信息停止进程。

kill -9 进程号

3.更新就是完成上述操作后,将新的jar包再运行就好。

screen -S 窗口名称(用英文)
cd /opt
java -jar 打包出来的名称.jar

本文到此结束
RuleApi详细安装–作者不暇