springBoot项目部署到服务器
文章目录
1. 首先得有个服务器
1. 随便买一个,我买的阿里云的单核2G一年86.看了华为云,腾讯云,百度云,阿里云,能找到的最便宜的就是86一年了。
如果买单核的买完之后可以在<轻量级应用服务器管理平台>使用。
- **重要:**开放你服务器的端口,就是外面可以使用这些服务器的这些端口,不会被防火墙拦截。
8888是宝塔面板使用的端口号 3306是MySQL数据库 8080是tomcat 就是你自己使用哪些端口号就必须得给他开放了,要不然就关闭防火墙,如果不这么做访问页面会超时systemctl stop firewalld.service 关闭防火墙 systemctl status firewalld.service 查看防火墙状态 systemctl disable firewalld.service 永久关
2. 有了服务器后就得配置Java环境。
-
有个神器叫MobaXterm。可以远程登陆你的服务器,同时也可以从本机拖文件到服务器
MobaXterm的使用
或者你使用cmd登陆,打开cmd,输入ssh root@你的公网IP
-
在你的服务器安装宝塔,一个可以让你简单配置环境的实用神器,安装过程中会先问你是否要安装,输入yes,然后就开始安装了
-----安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh Debian安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh Fedora安装脚本 wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh 注意:必须为没装过其它环境如Apache/Nginx/php/MySQL的新系统,推荐使用centos 8.X的系统安装宝塔面板 安装完如果 访问时响应时间过长,但是你cmd可以ping通那个ip,那么大概率是你的服务器 没有添加放行规则。比如说我的是阿里云服务器,就在安全--》防火墙--》添加规则, 端口范围是8888.然后确认就好了,,,切记同时把8080端口也放行了0.0。我就没放行一直转圈圈然后响应超时
安装完成之后,会有一个面板的链接,复制一下到你的电脑浏览器打开,会让你输入用户名和密码。这些在安装完成之后链接的下面会提供给你。记得保存链接,账号,密码这些。
如果你不记着你访问面板的链接。。。
这是登陆页面。账号和密码就是你安装宝塔时候给你提供的,记得保存
进去之后的页面,可以修改你的账号和密码,在面板设置里面,并且刚登陆的面板会提示你安装一些常用的软件,可以自己选择一些。
然后再软件商店下载你需要的环境软件,比如tomcat。
3. 打jar包部署spring boot项目到服务器
-
首先你得再pom.xml里面的bulid下增加一个插件,要不然执行jar包时会报错,找不到啥文件来着。
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
-
你项目应该没问题,至少本机没问题。然后开始打包,首先将你target目录下的文件clean一下,出现success即成功。然后package打包。Execute Maven Goal 下使用mvn install也可打包
然后再你的项目的target目录下找到打包的jar包
直接将jar包拖到你要放再服务器的哪个目录下面
下面是百分比
4.执行springboot jar包
- jar包内置有tomcat,所以可以直接执行
---------linux运行jar包-------------- 1、java -jar xxxxx.jar // 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 2、java -jar xxxxx.jar & //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 3、nohup java -jar shareniu.jar & //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。 4、nohup java -jar shareniu.jar >temp.txt & //指定输出日志文件,意思是不挂断运行命令,当账户退出或 终端关闭时,程序仍然运行 5. 可通过jobs命令查看后台运行任务 jobs 那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。 如果想将某个作业调回前台控制,只需要 fg + 编号即可。 fg 23 6. 查看某端口占用的线程的pid ps aux|grep xxxx.jar netstat -nlp |grep :13145 7. 关掉程序pid kill -9 30768 8.实时查看日志 tail -f nohup.out Ctrl+c 是退出tail命令。 alt+E+R重置。
5. 关于数据库
- 先再宝塔安装MySQL数据库,然后可以添加数据库,执行students.sql文件直接把本机结构和数据都执行到服务器的数据库
- 要想可视化数据库,可以本机连接服务器的数据库
当然第一步得先开放服务器的3306端口。然后
我使用的是第一步,授权。之后就使用本机去连接服务器数据库,链接名可以随便填。主机名是服务器公网IP,用户名和密码再授权那步了,你设置了啥使用啥。完了就可以连接上了-----------------------数据库 , 本机远程链接服务器数据库---------- 1. 授权法。 如果你想允许用户root从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.40.54' IDENTIFIED BY '123456' WITH GRANT OPTION 2. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑, 登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
6. 如果想打war包
- 在宝塔下载tomcat,软件商店搜索tomcat,安装即可。
- 本机打开你项目(我ssm项目是打war包的)位置(切换到工程所在目录),然后进入cmd,搜索框输入cmd直接进去就是当前目录下
- 进入以后输入执行命令
mvn clean package
- 进入服务器,将war包拖到tomcat-wabapp目录下,执行后会自动解析出一个目录,目录名就是你浏览器访问的项目名,一般宝塔安装的软件都在/www目录下
- 执行Linux命令
进入tomcat文件的bin文件夹中: 启动:./startup.sh 停止:./shutdown.sh 查看:执行ps -ef |grep tomcat 输出如下 *** 5144 。。。等等.Bootstrap start 说明tomcat 已经正常启动, 5144 就为进程号 pid = 5144 杀死:kill -9 5144 ------------------------linux下实时查看tomcat运行日志------------------------- 1、先切换到:cd tomcat/logs 2、tail -f catalina.out 这样是看实时日志 3、看全部日志直接vim catalina.out Ctrl+c 是退出tail命令。
7. 结束
欢迎访问我部署的springboot项目,一个留言板。
2021/1/27/15:14
---------------------------------------------------
更新:再一次部署了一个服务器。发现即使我再云服务器控制台安全组添加了安全规则,就是我自己项目使用了10086这个端口我配置了。但是还是网页访问不到。应该是你配置好了但是你的服务器防火墙还没有被及时修改。
推荐自己登陆服务器使用命令添加规则。
开启8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
出现success表明添加成功
重启防火墙
systemctl restart firewalld.service
1、运行、停止、禁用firewalld
启动:# systemctl start firewalld
查看状态:# systemctl status firewalld 或者 firewall-cmd --state
停止:# systemctl disable firewalld
禁用:# systemctl stop firewalld
2021/3/20 17:54