一、根据个人需求修改tomcat默认端口号
在application.properties里或者application.yml里加上server.port=8081(修改为8081端口)
二、把项目打包成jar
在maven窗口点击
就会自动打包在项目路径文件夹的/target文件夹下,自己可以找找
三、因为springboot有内置tomcat容器,这点比较方便,省去了tomcat的部署。我们到时候直接可以直接把jar包扔到linux上。
我们上传文件使用ftp工具FileZilla,国内在中文站下载,不然下载速度慢死了……
https://www.filezilla.cn/download/client
主机填公网ip,用户名和密码云服务器提供商应该有给,腾讯云端口是22(其他服务商端口自己查查)然后点击快速连接
四、下载jdk
https://www.oracle.com/java/technologies/javase-jdk14-downloads.html里下载64位jdk,选tar.gz结尾的
在国内的话oracle下载太慢,可以用清华的镜像站
https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/
五、安装jdk
1.在FileZilla中打开我们下载jdk安装包的目录,右键文件名,点击上传
我上传在/root目录下了
2.cd /root命令可以切换到绝对路径/root下
ls -al命令可以显示路径下所有文件,没事干ls -al一下避免迷路
pwd命令可以查看当前所在的路径
在usr下创建一个叫java的文件夹
mkdir /usr/java
把我们的压缩包解压到我们创建的文件夹
tar xzf jdk-8u171-linux-x64.tar.gz -C /usr/java
(注意-C是大写)
3.cd到我们的解压路径,ls -al看看是不是解压好了,记住这里jdk的名字,下面设置环境变量要用
4.设置环境变量
vi /etc/profile
进入vi后,按 i 可以进行输入,编辑完以后按 Esc ,然后输入 :wq 即可保存并退出
在文档末尾加上
#set java environment
export JAVA_HOME=/usr/java/jdk-12.0.2
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
保存退出后,运行以下命令以使更改生效
source /etc/profile
此时可以运行java -version来确认是否配置成功
六、安装mysql
1. mariadb是mysql的一个分支,Centos自带mariadb但是我们不需要,所以我们需要自己下载mysql
可以在mysql官网下载,如果国内的小伙伴感觉比较慢(虽然总共只有几十KB也慢不到哪去),同样可以在清华大学的镜像站下载https://mirrors.tuna.tsinghua.edu.cn/mysql/
我下载的是mysql80-community-release-el7-1.noarch.rpm
版本是8.0,下载mysql5.6版本容易出现各种诡异的错误,慎重。
注意这里el7的意思是适用于centos7版本,我的系统版本是centos7.5,注意系统版本不要下错了,不然报错。
2.安装命令
yum -y install mysql80-community-release-el8-1.noarch.rpm
然后
yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
3.也可以先
yum install wget
然后输入
wget -i -c http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
命令来下载
下载后还是
yum -y install mysql80-community-release-el7-1.noarch.rpm
yum -y install mysql-community-server
3.报错Requires: libstdc++.so.6(CXXABI_1.3.8)(64bit)的话
执行yum install libstdc++
如果缺少其他包,按照缺少包的名字安装。
如果安装了还没用,检查自己下载的mysql版本,比如我上面说的el8适用于centos8,我第一次安装的时候不知道这个下载了el8,卸载8版本手动清除mysql文件后依然报el8的错,网上找了好几种彻底删除的方式均无效,无奈之下重装系统才好了。
一个简单的小笔记:
如果使用yum install xxxx,会找到安装包之后,询问你Is this OK[y/d/N],需要你手动进行选择。但是如果加上参数-y,就会自动选择y,不需要你再手动选择。
yum -y install 包名(支持*) :自动选择y,全自动
yum install 包名(支持*) :手动选择y or n
4.安装完毕后运行mysql
service mysql start
我这里报错了:Failed to start mysql.service: Unit not found.没报错请忽略以下内容
首先看一下服务列表里有没有这个服务:
systemctl list-unit-files --type=service
然后查找mysql相关的service
发现了只有mysqld.service,没有mysql.service
使用 service mysqld start 能启动,很奇怪。
5.登录
mysql -uroot -p
通常第一次没密码,如果有密码的话打开mysql默认日志文件/var/log/mysqld.log
找到A temporary password……那一行,就有密码了
然后用
mysql -uroot -p密码
进去
这个密码不好记,我们修改一下
格式alter user '用户名'@'主机名' identified by '新密码';
例如
alter user 'root'@'localhost' identified by '123456';
注意mySQL8强制要求必须含大小写字母和特殊符号
6.此时如果我们用客户端远程连接数据库是不行的(此处以HeidiSQL为例)
我们在sql里执行三个命令:
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
我们再用远程客户端连接,发现已经可以了
在数据库里建表吧,记得项目的数据库地址要改一改哦
七、部署项目
先上传jar包,然后运行,运行命令是:
java -jar 包名.jar
然后我们在浏览器输入IP,网站已经可以正常运行了(不要在意丑陋的内容,演示嘛嘿嘿)
但是此时只要我们关闭linux控制台,它就进不去了。
守护进程写法(以包名为xx.jar为例)
nohup java -jar xx.jar > logName.log 2>&1 &
命令详解:
nohup:不挂断地运行命令,退出帐户之后继续运行相应的进程。
>logName.log :是nohup把command的输出重定向到当前目录的指定的“日志文件名.log”文件中,即输出内容不打印到屏幕上,而是输出到”日志文件名.log”文件中。不指定文件名会在当前目录创建nohup.out,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
2>&1:2就是标准错误,1是标准输出,该命令相当于把标准错误重定向到标准输出么。这里&相当于标准错误等效于标准输出,即把标准错误和标准输出同时输出到指定的“日志文件名.log”文件中。
如果想关闭的话,对于已经后台的执行的进程,可以通过ps命令查看对应pid,直接sudo kill pid即可
八、去控制台解析一下域名
点击添加记录,一般要添加两条,也可以根据自己个人情况添加。一条带有“www”的可以通过www你的域名来访问你的网站 和一条不带“www”。不带“www”以“@”符号来代替,记录值的位置记得填写你主机的域名
但是仅仅这样设置的话依然需要在网址后加上端口号才能访问,怎样可以不加端口号呢?
当访问域名的时候,端口默认指定的是80;而80端口在Linux系统下,1024之前的端口是只有root用户才能使用的,
因此我们需要映射一下端口。比如我们设置的端口是8081,因此将系统层面将端口80 映射到8081,
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081
命令解释:
-t nat : 指出我要操作什么表.(不写就表示filter.默认是filter)
-A PREROUTING : A 添加的意思.表示我要在PREROUTING 中添加一个规则
--dport 80 : 如果请求80端口.
--to-port 8081 : 那么就转到8081端口.
至此我们的项目部署完毕,希望能对你有所帮助。