若依(前后端分离版)部署全流程 | 宝塔部署SpringBoot项目踩坑日记 | Java调用Python脚本 | CentOS配置Python环境/库,如dlib

鑫鑫04 2024-08-13 09:37:01 阅读 72

前记

最近开发项目使用到了若依前后端管理系统进行二次开发,同时有一些识别相关的Python脚本需要使用Java在程序中调用。过程中一直不断地踩坑,报错,特别是在CentOS上部署特定版本的Python以及相应的第三方库尤其折磨。为此特地记录一下这几天学到的部署以及配置知识。

本文概要

详细介绍一下若依前后端分离版中后端包括数据库的打包,如何配置需要的服务器环境,如MySQL/Redis,以及如何运行SpringBoot项目。

我买的是不知名小厂的云服务器(主要是用来练手的),主要使用宝塔面板

配置:CentOS 7.8.2003 x86_64 2核

后端打包

一般我们开发都是在本地电脑,通常也是Windows系统。比较熟悉,这一块打包不是很困难。但是有一些关于后续服务器配置的SpringBoot配置参数需要注意一下。

SpringBoot打包

yml文件配置修改

因为打包后的jar文件无法再直接修改,因此在打包前需要提前修改一些服务器数据库之类的配置参数。yml配置文件中主要有两个地方需要修改:

MySQL配置参数

MySQL作为项目的主要数据库也需要在部署前先行修改配置文件。MySQL的配置文件可以在ruoyi-admin文件夹下的application-druid.yml中找到

主要修改的配置参数如下图:

Redis配置参数

若依项目中使用到了Redis作为缓存数据库,在部署或启动时必须提前配置好Redis数据库。修改若依连接Redis的配置可以在下图找到

application.yml文件中包含着Redis的相关配置,在其中我们可以找到

打包项目

我所使用的编辑器是IJ IDEA。(这个还没有配置的可以先上网上搜索,很多教程) 在编辑器右侧找到maven点击,找到ruoyi,按照顺序依次点击。

使用clean清除残留,在点击package就可以打包了

执行完之后进入ruoyi-admin下的target目录就可以看到打包好的jar包,之后与运行主要就是执行这个jar包。当然在其他子模块的target下也会各自生成jar包,但是我们只要用admin下的jar包就可以了,其他的jar包应该是自动打包进admin.jar包中了

到这里SpringBoot的打包就完成了,下面只要把打包好的ruoyi-admin.jar包通过宝塔面板或者其他方式上传到你自己的服务器就可以了。

这个时候在终端直接输入命令启动项目应该就可以看到佛祖启动了,但是缺少MySQL和Redis的环境会启动失败报错,这就需要我们进行下一步数据库的配置

java -jar ruoyi-admin.jar

数据库打包

数据库的打包主要是对MySQL,Redis数据库配置好启动后,若依会自动给我们创建。MySQL打包也是非常的简单,我这里用的是Navicat(没有的小伙伴也可以自行网上搜索下载教程)

打开Navicat找到与java配置文件中对应的数据库,右键转储SQL文件 -> 数据和结构,生成.sql文件。

到这一步数据库的打包也完成了

服务器数据库配置 MySQL/Redis

服务器配置的时候主要使用宝塔面板,没有这个的小伙伴也可以自行搜索下载。

MySQL数据

初次进入宝塔面板的时候应该会让你选择一个Web全家桶下载,直接下就可以了,其中包括了MySQL数据库。当然如果你不想下,也可以通过软件商店下载

注意坑点马上来了

跨版本问题

服务器上的MySQL版本最好和你在Windows上进行开发的MySQL数据库版本相一致,这样不会出一些跨版本的问题。可以在这里切换:

而我刚好没注意到这一点。我本地开发的MySQL版本是8.0,而我在服务器上配置的是5.7版本。而恰恰8.0版本的MySQL有一些字符编码格式是不能在5.7中使用的。如果有相同情况的小伙伴可以看下去。

解决方法

修改字符编码格式。

在MySQL8.0版本中导出的是utf8mb4以及utf8mb4_0900_ai_ci,而恰恰在5.7中是不能使用的

为了在5.7版本中使用需要将utf8mb4改为utf8 ,将utf8mb4_0900_ai_ci改为utf8_general_ci 即可

导入sql文件
创建数据

找到“数据库”,点击创建数据库

导入文件

找到导入,点击从本地上传,最后选择文件导入

注意:使用这种方法导入数据库如果出现问题是不会报错的,你可以使用本地Navicat连接一下数据库看看数据是否都是正确的

如果你想看到报错信息可以使用phpMyAdmin来导入数据库,但是这样导入又不会在数据库界面显示

如果一切正常MySQL就配置完了。

Redis数据

下载Redis

来到软件商店,搜索Redis

根据自己的需要下载版本。我本地是5的版本,但是宝塔上只有6-7的版本,为了减少冲突我选择了6.2的版本。

配置Redis

不知道为什么我这里Redis的配置文件不能直接在宝塔修改,索性我直接使用终端改了。

(1)找到redis.conf文件

(2)设置后台启动

daemonize no

修改为:

daemonize yes

位置如下图所示:

 (3)将bind 127.0.0.1改成 bind 0.0.0.0或直接注释,否则只能在本机访问

bind 0.0.0.0 

(4)添加密码:

取消requirepass yourpassword注释或直接添加密码,修改yourpassword为自已要设置的密码(假如我的密码是123456):

requirepass 123456

(4)将protected-mode 设置为no 代表:关闭保护模式,开启的话,只有本机才可以访问redis:

最后别忘了重启一下Redis使配置生效

至此MySQL和Redis数据库就全部配置好了

启动SpringBoot

数据库配置好并且全部启动后,再次运行ruoyo-admin.jar文件应该就可以正常启动服务了

可以使用来启动

java -jar ruoyi-admin.jar

后台运行指令

当然这样启动只会在终端一直开启的时候运行,如果你关掉终端那就关闭了。为了使得项目可以在后台不断运行你可以使用如下命令让项目一直在后台运行

nohup java -jar ruoyi-admin.jar >JavaProjectLog.txt &

其中

nohup表示不挂断运行命令。即使当账户退出或终端关闭时,程序仍然继续运行。

 >JavaProjectLog.txt表示将ruoyi-admin.jar输出的日志打印到JavaProjectLog.txt文件中

&表示程序在后台运行

结语

到这里一个完整的SpringBoot后端包括数据库就部署好了并且可以正常运行输出日志了。由于项目使用到了Python,后面的几章会详细地讲述怎么在CentOS上配置Python以及识别相关库,如dlib、opencv等库的配置,以及Java如何调用Python脚本。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。