RuleApi详细安装教程,从环境到部署

本文阅读 9 分钟
广告

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

提示

我已经在语雀补充了更加详细的文档,建议前往阅读:RuleProject社区应用帮助文档

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

链接:https://pan.baidu.com/s/13OISo_-d5qh2hgH2vYmoig?pwd=bdgx 
提取码:bdgx

Gitee(欢迎star):点击进入

Github(欢迎star):点击进入

接口文档:点击进入

所有安装问题都可以加入QQ交流群讨论,我会耐心解答:675025692

最新的一键安装脚本已经出炉,可以迅速完成基础配置

RuleApi一键安装脚本,傻瓜式配置,超快速运行

环境准备:

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

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

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

jdk下载地址:

链接:https://pan.baidu.com/s/1_ftWmCzbFyFsVv02Oluj7Q 
提取码:l96k 

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

r3.png

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

source /etc/profile

项目运行:

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

yum install screen

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

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

因为有很多人在数据库配置那里遇到问题,可以参考如下信息配置。另外,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.运行成功的效果如下:
r14.png
r15.png

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

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

整个过程不要开启任何外网端口,切记!!!!

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

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

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

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

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

/opt/files/static

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

screenshot-20220510-174411.png

注意:对于老版本用户,也就是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=邮箱地址(XXX@qq.com)
spring.mail.password=各种不同邮箱的授权码或者密码

下图是QQ邮箱获取授权码的案例。
QQ邮箱
QQ邮箱

2.APP中有个图库的功能,这里是获取pexels的免费无版权图片,后期可能会基于此开发文章插图功能,所以建议获取。直接前往这个地址注册并验证邮箱即可,完全是免费的:点击进入
6.png

然后在可视化配置中心填入。

1.png

对象存储OSS和COS配置

打开可视化配置中心,找到“远程存储设置”,即可对三种存储方式进行设置。
2.png

更新和停止

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

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

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

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

kill -9 进程号

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

screen -S 窗口名称(用英文)
cd /opt
java -jar 打包出来的名称.jar
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.ruletree.club/archives/2661/
RuleApi,基于Typcho程序开发的多功能API,开源发布
« 上一篇 12-04
东方子夜:雪儿
下一篇 » 12-25
广告

发表评论

V注册会员 L评论等级
R18 条回复
  1. GoodestPELv.1 说道:
    2024-11-11     Win 10 /    Chrome

    可以实现彩虹聚合登录功能吗

  2. 柯木Lv.1 说道:
    2022-11-25     MacOS /    Chrome

    SQLException: Storage engine MyISAM is disabled (Table creation is disallowed).
    数据库不支持MyISAM引擎,能否修改为InnoDB

    1. 不暇VLv.6 说道:
      2022-11-25     Android /    Chrome

      @柯木

      你可以参考github的代码,手动添加字段和表,暂时只能这样解决。
      https://github.com/buxia97/RuleApi/blob/master/src/main/java/com/RuleApi/web/InstallController.java

  3. __灬诱惑VLv.4 说道:
    2022-06-19     Android /    Chrome

    这个注册能不能去掉邮箱验证码的方式改为直接注册?

    1. 不暇VLv.6 说道:
      2022-06-25     Android /    Chrome

      @__灬诱惑

      目前已经实现咯,最新版的有开关控制

  4. 南岸Lv.1 说道:
    2022-06-11     Win 10 /    Chrome

    好的

  5. 南岸Lv.1 说道:
    2022-06-09     Win 10 /    Chrome

    sql文件有吗?

    1. 不暇VLv.6 说道:
      2022-06-09     Android /    Chrome

      @南岸

      这个数据库依赖typecho的数据库,所以是没有sql的,你安装一个typecho就好了

  6. 默风Lv.1 说道:
    2022-06-08     Android /    FireFox

    运行完一键脚本后提示启动成功,但访问配置端口却拒绝连接(防火墙开放了对应端口),重启Ruleapi也是如此,何解。使用lnmp一键包安装的redis。
    out.txt文件内容:
    :: Spring Boot :: (v2.1.7.RELEASE) 2022-06-08 18:41:22 INFO 22423 --- [ main] com.RuleApi.Application 50 : Starting Application v1.2.1 on VM-4-5-centos with PID 22423 (/opt/RuleApi.jar started by root in /opt) 2022-06-08 18:41:22 INFO 22423 --- [ main] com.RuleApi.Application 647 : No active profile set, falling back to default profiles: default 2022-06-08 18:41:24 INFO 22423 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate 244 : Multiple Spring Data modules found, entering strict repository configuration mode! 2022-06-08 18:41:24 INFO 22423 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate 126 : Bootstrapping Spring Data repositories in DEFAULT mode. 2022-06-08 18:41:24 INFO 22423 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate 182 : Finished Spring Data repository scanning in 12ms. Found 0 repository interfaces. 2022-06-08 18:41:25 INFO 22423 --- [ main] trationDelegate$BeanPostProcessorChecker 330 : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$4d392b10] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2022-06-08 18:41:26 INFO 22423 --- [ main] o.s.b.w.embedded.tomcat.To2022-06-08 18:41:24 INFO 22423 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate 244 : Multiple Spring Data modules found, entering strict repository configuration mode! 2022-06-08 18:41:24 INFO 22423 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate 126 : Bootstrapping Spring Data repositories in DEFAULT mode. 2022-06-08 18:41:24 INFO 22423 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate 182 : Finished Spring Data repository scanning in 12ms. Found 0 repository interfaces. 2022-06-08 18:41:25 INFO 22423 --- [ main] trationDelegate$BeanPostProcessorChecker 330 : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$4d392b10] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2022-06-08 18:41:26 INFO 22423 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer 90 : Tomcat initialized with port(s): 8080 (http) 2022-06-08 18:41:26 INFO 22423 --- [ main] o.a.coyote.http11.Http11NioProtocol 173 : Initializing ProtocolHandler ["http-nio-8080"] 2022-06-08 18:41:26 INFO 22423 --- [ main] o.apache.catalina.core.StandardService 173 : Starting service [Tomcat] 2022-06-08 18:41:26 INFO 22423 --- [ main] org.apache.catalina.core.StandardEngine 173 : Starting Servlet engine: [Apache Tomcat/9.0.48] 2022-06-08 18:41:27 INFO 22423 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] 173 : Initializing Spring embedded WebApplicationContext 2022-06-08 18:41:27 INFO 22423 --- [ main] o.s.web.context.ContextLoader 284 : Root WebApplicationContext: initialization completed in 3970 ms 2022-06-08 18:41:30 INFO 22423 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor 171 : Initializing ExecutorService 'applicationTaskExecutor' 2022-06-08 18:41:30 INFO 22423 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping 54 : Adding welcome page: class path resource [static/index.html]2022-06-08 18:41:31 INFO 22423 --- [ main] o.a.coyote.http11.Http11NioProtocol 173 : Starting ProtocolHandler ["http-nio-8080"] 2022-06-08 18:41:31 INFO 22423 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer 202 : Tomcat started on port(s): 8080 (http) with context path ''2022-06-08 18:41:31 INFO 22423 --- [ main] com.RuleApi.Application 59 : Started Application in 10.083235142 seconds (JVM running for 11.065) 26,1 Bot

    1. 不暇VLv.6 说道:
      2022-06-08     Android /    Chrome

      @默风

      根据你的代码来看,运行是没有任何问题的,你也可以在控制台执行curl 127.0.0.1:8080查看有没有返回结果。
      但是这里要注意的是,你提到了开端口是不正确的,整个过程不需要开启任何外部端口,你应该按照我的教程去新建网站和修改伪静态。

      1. 默风Lv.1 说道:
        2022-06-08     Android /    FireFox

        @不暇

        为了排除nginx配置文件写错的原因,所以临时开了端口。
        执行结果
        curl 127.0.0.1:9500
        curl: (7) Failed connect to 127.0.0.1:9500; Connection refused

        1. 不暇VLv.6 说道:
          2022-06-08     Android /    Chrome

          @默风

          你可以加交流群,然后来加我的微信,看起来不是什么大问题。

          1. 不暇VLv.6 说道:
            2022-06-08     Android /    Chrome

            @默风

            那就好

          2. 默风Lv.1 说道:
            2022-06-08     Android /    FireFox

            @不暇

            刚看了一下你说的那个文件,端口项竟然是空的,(可能是填写信息的时候网络不稳定导致的)。
            补上端口号之后就可以访问了。
            非常感谢。

        2. 不暇VLv.6 说道:
          2022-06-08     Android /    Chrome

          @默风

          这里和nginx没有半点关系,只和opt目录下的application开头的文件里面的端口配置有关系,甚至你的nginx除了我提供的伪静态,你自己最好不要重新定义接口。

  7. 武玥学长VLv.4 说道:
    2022-05-20     Android /    Chrome

    小白看的还是有点懵,只能慢慢学习了

  8. adminuserVLv.1 说道:
    2021-12-17     Win 10 /    Chrome

    感谢分享,学习了!

  9. 不暇VLv.6 说道:
    2021-12-10     Android /    Chrome

    安装总结来说只需要运行jar,经过几天的测试已经确认不占用性能,所以Typecho用户都可以安装试试。

没有更多评论了

作者信息

热门文章

标签TAG

热评文章