Centos 7系统 宝塔部署Tomcat项目(保姆级教程)
再看文章之前默认已经安装好系统,可能是云系统,或者是虚拟机。
宝塔安装
这个比较简单,参考这个老哥的即可:
https://blog.csdn.net/weixin_42753193/article/details/125959289
环境配置
进入宝塔面板之后会出现环境安装,可以默认安装即可,然后就是安装JDK、MySQL、Redis、MinIO等,根据自己需求安装,这些都不是问题,都是无脑安装。
本地测试环境连接
基本测试步骤:在云服务平台开放对应端口 => 在宝塔面板开放对应端口 => 本地连接测试
MySQL测试
同在Navicat创建数据库类似,先创建,再导入自己的 sql 文件;这个密码不需要记,如果忘记可直接查看,或者直接 root 一个新密码;
接下来在本地测试连接,配置 系统ip + 3306 端口号,并且把这个用户名和密码一同配置,这个很容易测试成功。
Redis
下载之后再面板中的软件商城中打开,配置ip以及密码即可,ip为0.0.0.0;之后本地测试的时候填写服务器ip即可,然后如果设置密码就配置;这个也很容易搞。
MinIO测试
这个真的是给我搞的晕头转向,我没有通过面板下载,而是通过命令行下载的;
创建文件目录:
mkdir minio
chmond 777 minio/
# 然后进入minio路径下
mkdir data
mkdir bin
chmod 777 data/
chmod 777 bin/
touch minio.log
下载minio:
wget https://dl.minio.io/server/minio/release/linux-amd64/minio
启动minio服务
这里我直接贴一个我实现的方式,稍后讲我遇见的问题
# 先进入到bin路径下
sudo nano start.sh# 文件中填写
# 自定义用户名
export MINIO_ROOT_USER=minioadmin
# 自定义密码
export MINIO_ROOT_PASSWORD=Zhanghy0330
# /www/server/panel/plugin/minio 这个路径是你刚改创建的minio路径,替换即可
nohup /www/server/panel/plugin/minio/minio server --console-address :9001 /www/server/panel/plugin/minio/data >/www/server/panel/plugin/minio/minio/minio.log 2>&1 &# 再创建一个stop.sh
sudo nano stop.sh# 文件内容
#!/bin/bashecho "Stopping minio"
pid=`ps -ef | grep 'minio server' | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
thenkill -9 $pid
fi
echo "Stop Success!"# 启动
sudo sh start.sh# 关闭
sudo sh stop.sh
至此,minio服务就算配置完了!但是其中有一些坑,我是踩得一个比一个准!
来细讲,minio服务是有两个端口的:
- 9000 端口:这是 MinIO 的默认 API 端口,主要用于 S3 协议的对象存储操作,适合通过命令行工具(如 mc)或编程方式进行访问。
- 9001 端口:这是 MinIO 的 Web 控制台端口,提供图形化界面,便于进行用户管理、权限设置、监控等操作。
那么可以发现我们在启动服务的时候只配置了 9001 端口,这时候就有一个好处 :
- 当你在浏览器中访问 http://<服务器IP>:9000 时,MinIO 会自动重定向到控制台端口(如 http://<服务器IP>:9001),以提供图形化界面。
如果你两个都配置,就会出现谁干谁的活,互不干扰,也不联系;这就导致一个严重的问题,在 Java 项目中配置 minio 的时候必须使用 9000 端口(API端口),但是这样配置完之后照片是可以存储,但是你再通过 URL 访问图片资源的时候会发现端口号还是 9000 ,此时问题就出现了 404 显示不了;问题就在于你访问的资源应该通过 9001 这个Web控制台窗口去访问。
因此为了不必要的麻烦,直接用我配置的方式去配置即可,这个配置完了之后,这两个端口就行亲兄弟似得,互相帮助。
项目打包
我的项目结构
基于 Spring + SpringMVC + Mybatis + Redis 构建的系统,并且最终要的是通过父工程管理依赖版本的项目。
在父工程的 pom.xml 中添加一下配置:
<!--Maven的打包插件--><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.3.2</version></plugin></plugins></build>
开始打包:
可以发现我是打开的 root 项目中的Maven,点击 clean 可以清楚现有的 target,然后点击 package 会将子项目中的有服务的项目打包成 war 包,并且会自动依赖到其他的资源文件,比如应用到了 common 这个子项目中的 Bean对象;
至此项目打包完毕,开始部署!!
项目部署
目前版本的宝塔面板的界面,先点击 Java 环境管理 去配置Java环境,JDK 和 安装 Tomcat;
这里主要安装 Tomcat :
全局安装是一个版本只能安装一个,自定义安装,就是一个版本可以安装多个;建议自定义安装,分块化管理服务;可以自定义端口(还是跟刚才一样,先放行云服务器上的端口,再放行宝塔面板的端口)
添加 Java 项目:
主要还是配置项目路径,在 wwwroot 文件下自定义一个文件夹,然后域名就是有的话写上,没有的话先写 ip 也行;
创建完成之后点击根目录,将之前打的 war 包放进去,双击解压,再将 war 包删除即可。
启动服务
war 包上传之后要将 Tomcat 服务重启,就行你本地写代码一样,每改动一点就要重新加载 Tomcat 服务。
此时不出意外的话 就可以通过 http://<服务器IP>:<Tomcat端口号>/项目名称 就可以访问到项目中的信息了。
但是有一个坑,这个配置完的项目 Tomcat 会自动将项目名称添加至后端访问接口上,可以在以下设置:
就是有一个后端路由可以自定义改为 / ,但是我改的时候同样出现访问不到的问题,大概率应该是浏览器缓存的问题,一定要记得时常清一清缓存。如果实在访问不到后端服务,可以通过浏览器的输入测试到底是怎么拼接的,当然服务肯定是启动的,就是接口没有找好。
至此一个小小项目就上线成功了。
总结
以前部署项目都是现有的开源项目,都是有教程的,但是这一次是完全自己摸索,从0 到 1,用了大概三四天这个样子,又了解不少,哈哈。
最后我的域名还在申请中… 根据描述工信部还有一个星期的审核,再加上这个五一假期,难评,因为我还着急用呢,急着投简历呢。