记录linux从0部署java项目(宝塔)
目录
一、安装宝塔可视化界面
二、部署前端
三、部署后端
1、配置并连接Mysql数据库
2、配置并连接redis
3、安装jdk
这里先记录一个安装后遇到的问题
安装openJDK
四、检查
一、安装宝塔可视化界面
宝塔面板下载,免费全能的服务器运维软件
运行安装脚本

安装完成后

访问内网面板地址,填写用户名密码。
在软件商店中安装nginx、mysql、redis

开放3306和6379端口(为了本地测试连接)如果是阿里云服务器记得去安全组开放端口

二、部署前端
运行npm run build:prod

得到打包后的前端文件dist
![]()
通过宝塔上传(目录自定)
我这里是/www/wwwroot/saas_inspection/front-admin

添加站点


完成后可以直接访问 域名或ip+:端口看看我们部署的项目
我们会发现有刷新404的问题
我部署的前端项目有个转发路径prod-api需要再去nginx里配置代理
![]()
添加完站点后会自动生成一nginx的配置文件存放位置根据nginx主配置文件找

图中可以看出文件位置在/www/server/panel/vhost/nginx/*.conf
切过去看看
cd /www/server/panel/vhost/nginx/
ls

vim xxx.conf
在server里添加,我的后端项目端口为8080
#配置代理
location /prod-api/ {
proxy_pass http://服务器路径:8080/;
}
#防止返回404
location / {
root /www/wwwroot/saas_inspection/front-admin/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
结束后重启nginx
nginx -s reload
前端over!
三、部署后端
1、配置并连接Mysql数据库

获取到mysql,root密码
在终端登录mysql输入
use mysql
select host from user where user='root';
查询到如果是localhost或者127.0.01则改为%(这里不改本地可视化工具连接不上root)
修改指令:
update user set host = '%' where user = 'root';
flush privileges; //刷新配置


navicat mysql连接成功。
2、配置并连接redis
找到配置文件

ctrl + f 查找
bind 127.0.0.1把它注释了
protected-mode 本来是yes改成no
redis刚安装好是没有密码的如果要设置密码的话在配置文件中加上
requirepass 123(表示密码是123)

本地连接测试一下,redis搞定。
3、安装jdk
我的项目安装的是jdk19。
这里先记录一个安装后遇到的问题
本来我是下载了官方的jdk19(rpm)

安装完成后运行我的java程序没有报错,但在登录时发送了错误:
cn.hutool.crypto.CryptoException: SecurityException: JCE cannot authenticate the provider BC
是由于我的项目中在使用加密的第三方类时,验证签名不过关导致的。
具体可看博客:升级jdk版本后,出现SecurityException: JCE cannot authenticate the provider BC-CSDN博客
解决的办法就是安装openJdk
安装openJDK
先检查服务器中是否已经存在jdk环境
rpm -qa|grep jdk
如果有则卸载
yum -y remove java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
检查是否卸载成功
[root@localhost /]# java -version
-bash: java: 未找到命令
下载openJDK到本地
清华大学开源镜像站:https://url.zeruns.tech/Tuna_JDKIndex of /Adoptium/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorhttps://url.zeruns.tech/Tuna_JDK
![]()
通过宝塔上传到服务器上
cd 到上传的目录然后解压
tar -zxvf OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz
解压好后ls得到jdk目录jdk-19.0.2+7
配置环境
vim /etc/profile
注意路径填写正确我这里拿/opt举例
export JAVA_HOME=/opt/jdk-19.0.2+7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
完成后
source /etc/profile
java -version

jdk安装成功!
4、后端项目打包
配置yml文件
端口8080

mysql配置

redis配置

打包

得到jar包

上传到服务器上。
cd 到对应目录。
//正常启动,关闭终端则会退出程序
java -jar xxx.jar
//后台启动关闭终端也不会退出
nohup java -jar xxx.jar &
四、检查
访问前端地址,查看是否和后端对接成功。
相关文章:
记录linux从0部署java项目(宝塔)
目录 一、安装宝塔可视化界面 二、部署前端 三、部署后端 1、配置并连接Mysql数据库 2、配置并连接redis 3、安装jdk 这里先记录一个安装后遇到的问题 安装openJDK 四、检查 一、安装宝塔可视化界面 宝塔面板下载,免费全能的服务器运维软件 运行安装脚本 安…...
Python的时间和日期:探索datetime模块
🚀 个人主页:xmp65535 🚀 专栏:python技术专栏 目录 一、前言 二、datetime 模块简介 三、基本使用 1.日期和时间的创建 2.获取当前日期和时间 3.时间戳与日期时间之间的转换 4.时间运算 5.格式化日期和时间 6.解析字符串…...
代理与反向代理
Java项目的代理与反向代理 1. 代理 定位:为客户端服务通信方向:客户端->代理服务器->远程服务器好处:对客户端行为进行过滤和控制;隐藏客户端IP地址;审计流量;缓存资源加快访问速度; 2…...
长风破浪会有时,直挂云帆济沧海
仅以此篇记录生活琐事,因为自己在初中就天天写日记,到了大学自己写日记的次数逐渐少了下来。 最近心不在焉,不知道为啥,也许是因为压力吧。在我这个年龄阶段的压力也许不一样吧,过几天又要参加自考的考试,自…...
jAavascript基础积累
深拷贝与浅拷贝 深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在编程中常用的概念,它们指的是复制对象或数组时的不同方式。让我们来详细解释它们,并列举一些例子: 浅拷贝(Shallow C…...
神经网络训练中batch的作用
在神经网络训练中,batch的作用主要包括以下几个方面: 减少内存占用和计算成本:在训练神经网络时,需要加载并处理大量的数据。使用batch训练可以将数据分成较小的批次,每次处理一小部分数据,从而减少内存占用…...
【grpc】grpc进阶一,再回首protobuf
在之前的章节里,我们了解了 protobuf 的基本规则和使用方法,生成了 grpc 代码并成功运行。那么我们还要思考一个问题,protobuf 文件到底该如何管理。我们知道 grpc 是区分客户端和服务端的,一般而言,客户端和服务端是分…...
iframe嵌入Vue页面实现免登方法
简介:实现一个功能需要使用iframe嵌入其它系统内部的一个页面,但嵌入后出现一个问题,就是一打开这个页面就会自动跳转到登录页,原因是被嵌入系统没有登录(没有token)肯定不让访问内部页面的,本文就是解决这个问题的。 …...
详解TCP/IP五层模型
目录 一、什么是TCP五层模型? 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层 封装和分⽤ 三、Java示例 引言: 在网络通信中,TCP/IP协议是至关重要的。为了更好地理解TCP协议的工…...
开创加密资产新纪元:深度解析ERC-314协议
随着加密资产市场的不断发展和区块链技术的日益成熟,新的协议和标准不断涌现,其中包括了ERC-314协议。本文将深入分析ERC-314协议的特点、功能以及对加密资产市场可能产生的影响。 1. ERC-314协议简介 ERC-314协议是一项建立在以太坊区块链上的新提案&a…...
Rust 实战练习 - 9. 文本编码,URL编码,加密解密
编解码 编程工作中,很复杂的一个环节的就是编解码和多语言。这里只讨论编解码的工作。 目标: 常见文本编码的转换(GBK, Shift-JIS, UTF8, Unicode, ASCII)Web中常用的编码常见的加密算法(md5, sha1, HMAC, AES/DES, RSA) encoding/decodi…...
linux环境openfile限制
/etc/security/limits.conf 是 Linux 系统中用于设置用户资源限制的配置文件。这个文件允许系统管理员为每个用户或用户组设置各种资源限制,以防止用户滥用系统资源。 这个文件中的每一行都定义了一个资源限制。每一行通常包含以下字段(由空格或冒号分隔…...
python之pandas数据导入和导出
目录 Pandas 常用数据导入Pandas 常用数据导出数据导入示例CSV 文件:指定导入文件的编码格式添加列标题 Excel 文件:JSON 文件:数据库:HTML 表格:Clipboard:HDF5 文件:Feather 文件:…...
Docker 集成 redis,并在nacos进行配置时需要注意点
安装redis镜像 docker pull redis:6.0.6redis配置文件 创建相关配置文件 mkdir /apps/redis cd /apps/redis touch redis.conf vim redis.confredis.conf内容: #开启保护 protected-mode yes #开启远程连接 bind 0.0.0.0 #自定义密码 port 6379 timeout 0 # 900s内…...
数据库系统工程师考试大纲
数据库系统工程师考试大纲主要包括以下几个方面的考试要求: 1.掌握计算机体系结构以及各主要部件的性能和基本工作原理。 2.掌握操作系统、程序设计语言的基础知识,了解编译程序的基本概念。 3.熟练掌握常用数据结构和常用算法。 4.熟悉软件工程和软件开…...
(Java)数据结构——图(第七节)Folyd实现多源最短路径
前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 Folyd实现原理 中心点的概念 感觉像是充当一个桥梁的作用 还是这个图 我们常在一些讲解视频中看到,就比如dist(-1)࿰…...
使用Python进行高效的多线程HTTP请求
在处理网络请求时,尤其是当需要大量请求相同或不同的URL时,采用多线程的方式可以显著提高效率。本文介绍了如何使用Python的concurrent.futures模块实现多线程HTTP请求。 为什么使用多线程? 多线程可以让CPU和网络资源得到更有效的利用。在…...
如何利用OceanBase v4.2的 外部表简化外部数据处理
为什么需要使用外表 在日常的业务场景中,经常遇到需要在数据库中处理外部数据的情况,这些数据可能来源于应用程序,或者是其他业务系统。一般来说,常是通过ETL工具将外部数据库的数据导入到数据库内部的表中,再进行分析…...
【灵境矩阵】零代码创建AI智能体之行业词句助手
欢迎来到《小5讲堂》 这是《灵境矩阵》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 创建智能体选择创建方式零代码 基础配置头像名称简介指令开场白…...
springboot 防抖操作
大佬的代码:看这里 原理: 通过aop切面编程,在调用接口前缓存接口信息,将信息缓存到redis中,在规定时间内重复调用接口,会被拦截请求 有个地方感觉不太合理,在使用中我将其修改了 //前略 publi…...
KG与LLM:大模型时代的智能规划
这些文章给出的“推荐思路”可以浓缩成一句话 先用 Planner 产出 subgoal dependency acceptance criteria。再让 Router 判断每个子任务该走 向量RAG、KG、数据库还是工具。对需要关系、多跳、时序、因果的问题,用 KG / event graph 做结构化检索,而…...
ISSCC传感器设计启示:从高精度温度测量到低功耗系统优化
1. 从ISSCC看传感器设计的巅峰与启示每年二月的国际固态电路会议,对于像我这样泡在实验室和产线里的硬件工程师来说,就像一场技术界的“春晚”。它不发布概念,不空谈趋势,只展示过去一年里,全球顶尖研究团队在硅片上实…...
从零搭建ROS Gazebo仿真小车:集成摄像头与YOLO目标检测实现视觉感知
1. 环境准备与ROS安装 在开始构建仿真小车之前,我们需要先搭建好开发环境。ROS(Robot Operating System)是目前机器人开发最流行的框架之一,它提供了硬件抽象、设备驱动、库函数、可视化工具等丰富功能。我推荐使用Ubuntu 20.04 L…...
FastAPI清洁架构实践:从分层设计到可维护项目搭建
1. 项目概述:一个为FastAPI项目设立的“洁净室”当你开始一个新的FastAPI项目时,面对的是一个空白的画布。理论上,你可以自由地绘制任何架构,但现实往往是:随着第一个路由、第一个数据库模型、第一个业务逻辑的加入&am…...
Atlas框架:机器学习全生命周期的安全审计与验证
1. Atlas框架:机器学习生命周期的安全守护者在机器学习(ML)模型日益渗透到金融、医疗等关键领域的今天,一个令人不安的事实逐渐浮出水面:从数据采集到模型部署的整个生命周期中,每个环节都可能成为攻击者的…...
不止是画框!深入理解Cadence Allegro中Route Keepout与Route Keepin的实战区别
不止是画框!深入理解Cadence Allegro中Route Keepout与Route Keepin的实战区别 在PCB设计领域,约束管理系统的精准运用往往决定着设计成败。对于使用Cadence Allegro的工程师而言,Route Keepout(禁止布线区)和Route Ke…...
实战配置指南:5个技巧让PlayStation手柄在Windows上发挥专业级性能
实战配置指南:5个技巧让PlayStation手柄在Windows上发挥专业级性能 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows DS4Windows是一款功能强大的开源控制器兼容工具,…...
Azure Quickstart Templates 多区域部署高可用架构设计终极指南:5步构建企业级灾难恢复方案
Azure Quickstart Templates 多区域部署高可用架构设计终极指南:5步构建企业级灾难恢复方案 【免费下载链接】azure-quickstart-templates Azure Quickstart Templates 项目地址: https://gitcode.com/gh_mirrors/az/azure-quickstart-templates 在当今数字化…...
【AI】短期记忆:会话上下文管理与实现
短期记忆:会话上下文管理与实现 📝 本章学习目标:本章深入探讨记忆机制,这是AI Agent持续执行的关键能力。通过本章学习,你将全面掌握"短期记忆:会话上下文管理与实现"这一核心主题。 一、引言&a…...
底特律汽车产业转型:从全球平台战略到创新生态重构
1. 从废墟中重生:底特律汽车产业的韧性复苏如果你在2010年前后关注过全球汽车产业,或者对美国的工业经济史稍有了解,那么“底特律”这个名字,在当时几乎就是“衰败”与“绝望”的同义词。这座曾经的“汽车之城”,在200…...
