Linux服务器部署前后端项目-SQL Father为例

发布时间 2023-04-04 19:46:12作者: Lemon-GISer

Linux服务器部署前后端项目-SQL Father为例

项目介绍

项目的Github地址:

https://github.com/liyupi/sql-father-frontend-public

1. 下载前后端项目到本地

我这里使用Git clone,也可以直接下载压缩包。

git clone https://github.com/liyupi/sql-father-frontend-public.git

image-20230404171015916

2. 启动前端项目

我这里使用WebStorm,打开前端项目,可以看到这个项目用的yarn作为包管理器。

根据IDE提示安装依赖,或者运行yarn install

运行项目,我这里直接点三角了,或者运行yarn run dev

image-20230404172511147

3. 准备数据库

打开MySQL,运行项目提供的SQL语句。我这里用的HeidiSQL。

注意:这里mysql版本是5.7。似乎5.6.5版本以下不支持datetime类型,会失败。

image-20230404175312159

在这一步可以直接连接到服务器的数据库,建表插数据。后端项目修改一下配置即可

4. 启动后端项目

使用IDEA打开后端项目,打开pom.xml,根据提示安装依赖。

image-20230404180007247

这里要配置一下自己的数据库。

src/main/resources/application.yml 修改数据库地址

image-20230404184506230

打开 src/main/java/MainApplication,点代码左边的绿色三角启动。

5. 打包前端项目

先修改一下源码中发请求的ip地址,改成自己的服务器后台地址。这里就是把localhost换成服务器的ip。

image-20230404184808971

打包前端yarn run build 得到dist文件夹

6. 打包后端项目

这个项目有个小bug,需要改动一些代码,参考https://github.com/liyupi/sql-father-backend-public/issues/28

先修改配置文件,将数据库地址改为服务器数据库地址。定位到src/main/resources/application.yml 修改数据库地址。

打包:按住shift,选中clean compile package,运行

image-20230404185035300

得到target/sql-father-backend-0.0.1-SNAPSHOT.jar

7. 将打包文件传输到服务器

通常使用xftp,直接拖进服务器就可以了,这里用的finalshell,可以同时操作终端和文件。

将前端打包结果dist文件夹、后端打包结果sql-father-backend-0.0.1-SNAPSHOT.jar上传到自己喜欢的位置。

image-20230404185523038

这里对文件夹进行了重命名,看着比较规范

对前后端文件夹修改权限:不修改权限后边的步骤可能会出问题,简单粗暴的方式就是将文件夹权限改为777(全勾上),工具都能改。

image-20230404191538946

8. 安装运行环境

运行前端需要Web容器,如tomcat、nginx等。这里用的nginx。

nginx的安装教程很多,这里贴一个。https://juejin.cn/post/6844904144235413512

运行后端需要Java环境。

Linux部署Java环境,网上教程也很多。https://blog.csdn.net/qq_43329216/article/details/118385502

注意:tar解压可能会丢文件,比如没有jre文件,我这里就遇到了,解决方法就是先在本地解压在上传到服务器,当然也有其他更好的办法。

准备数据库,参考上方第3步.

9. 运行前后端项目

如果使用云服务器,先到网站找到控制台,防火墙开通两个端口。比如这里前端的端口是8000,后端的端口是8102

运行前端:

  1. 编写nginx.conf配置文件,添加一段server。
image-20230404190654393

Linux 查看 nginx 安装目录和配置文件路径,参考https://www.cnblogs.com/ryanzheng/p/13124128.html

  1. 重启nginx nginx -s reload
  2. 打开浏览器,访问8000端口测试一下,正常页面应该加载出来了

运行后端:

  1. 命令 java -jar sql-father-backend-0.0.1-SNAPSHOT.jar
  2. 测试页面是否正常运行
  3. 停掉后端,改为热启动的方式运行。nohup java -jar sql-father-backend-0.0.1-SNAPSHOT.jar > out.log &

Linux nohup 命令详解 https://juejin.cn/post/7014115562595254285

结尾

至此项目就搭建完毕了,主要麻烦的地方在环境配置那块。环境搭好了,以后再部署项目非常快。