Linux服务器部署前后端项目-SQL Father为例
Linux服务器部署前后端项目-SQL Father为例
项目介绍
项目的Github地址:
1. 下载前后端项目到本地
我这里使用Git clone,也可以直接下载压缩包。
git clone https://github.com/liyupi/sql-father-frontend-public.git
2. 启动前端项目
我这里使用WebStorm,打开前端项目,可以看到这个项目用的yarn作为包管理器。
根据IDE提示安装依赖,或者运行yarn install
运行项目,我这里直接点三角了,或者运行yarn run dev
3. 准备数据库
打开MySQL,运行项目提供的SQL语句。我这里用的HeidiSQL。
注意:这里mysql版本是5.7。似乎5.6.5版本以下不支持datetime类型,会失败。
在这一步可以直接连接到服务器的数据库,建表插数据。后端项目修改一下配置即可
4. 启动后端项目
使用IDEA打开后端项目,打开pom.xml,根据提示安装依赖。
这里要配置一下自己的数据库。
src/main/resources/application.yml
修改数据库地址
打开 src/main/java/MainApplication,点代码左边的绿色三角启动。
5. 打包前端项目
先修改一下源码中发请求的ip地址,改成自己的服务器后台地址。这里就是把localhost换成服务器的ip。
打包前端yarn run build
得到dist
文件夹
6. 打包后端项目
这个项目有个小bug,需要改动一些代码,参考https://github.com/liyupi/sql-father-backend-public/issues/28
先修改配置文件,将数据库地址改为服务器数据库地址。定位到src/main/resources/application-prod.yml
修改数据库地址。
打包:按住shift,选中clean compile package,运行
得到target/sql-father-backend-0.0.1-SNAPSHOT.jar
7. 将打包文件传输到服务器
通常使用xftp,直接拖进服务器就可以了,这里用的finalshell,可以同时操作终端和文件。
将前端打包结果dist
文件夹、后端打包结果sql-father-backend-0.0.1-SNAPSHOT.jar
上传到自己喜欢的位置。
这里对文件夹进行了重命名,看着比较规范
对前后端文件夹修改权限:不修改权限后边的步骤可能会出问题,简单粗暴的方式就是将文件夹权限改为777(全勾上),工具都能改。
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
运行前端:
- 编写
nginx.conf
配置文件,添加一段server。
Linux 查看 nginx 安装目录和配置文件路径,参考https://www.cnblogs.com/ryanzheng/p/13124128.html
- 重启nginx
nginx -s reload
- 打开浏览器,访问8000端口测试一下,正常页面应该加载出来了
运行后端:
- 命令
java -jar sql-father-backend-0.0.1-SNAPSHOT.jar
- 测试页面是否正常运行
- 停掉后端,改为热启动的方式运行。
nohup java -jar sql-father-backend-0.0.1-SNAPSHOT.jar > out.log &
Linux nohup 命令详解 https://juejin.cn/post/7014115562595254285
结尾
至此项目就搭建完毕了,主要麻烦的地方在环境配置那块。环境搭好了,以后再部署项目非常快。