springboot项目部署到阿里云服务器(centos7)
? 本篇文章将详细为大家介绍如何将springboot项目部署到阿里云服务器上。项目案例使用锋迷商城项目,如果大家需要项目资源,可以去gitee上下载,有很多资源。
? 使用工具:Xshell,Xftp
后端部署
(一)jdk安装(离线安装)
? (1)jdk1.8下载 所有资源统一下载到:/usr/local目录,如下图所示:
? (2)解压安装包 ? ? (3)配置环境变量
1.进入 /etc 目录找到profile文件
2.编辑profile文件:vim profile
在profile文件最后加上:
export JAVA_HOME=/usr/local/jdk1.8.0_221
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
3.让配置生效(source /etc/profile)并检查jdk版本(java -version)
4.解释一下配置的环境变量
(1)export JAVA_HOME=/usr/local/jdk1.8.0_221 :配置 JAVA_HOME路径(取决于jdk解压路径)
(2)export JRE_HOME=$JAVA_HOME/jre: 配置jre路径
(3)export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:配置lib路径
(4)export PATH=$JAVA_HOME/bin:$PATH(系统指令文件路径路径):配置bin文件路径
注意!!!:配置好Java环境变量后,一定要添加系统指令文件路径路径-->$PATH,否则原有的Linux命令将无法执行。
此处linux中的“:”等同于Windows中的";"
统指令文件路径路径-->$PATH,否则原有的Linux命令将无法执行。
此处linux中的“:”等同于Windows中的";"
(二)Tomcat安装(离线安装)
(1)tomcat下载 所有资源统一下载到:/usr/local目录,如下图所示: (2)解压安装包 ? (3)启动tomcat
- cd /usr/local/apache-tomcat-8.5.46/bin
- ./startup.sh(启动tomcat,“./”,启动命令相当于 run)
- tomcat默认端口号为8080
- 此时可以进行访问测试,在浏览器中输入:云服务器公网ip:8080 若如下图所示,则启动成功
5.关掉tomcat服务
ps -ef | grep tomcat
kill -9 pid
6.启动失败原因呢 (1)阿里云防火墙未关闭 检查防火墙状态 systemctl status firewalld 如果显示如上图所示:Active:active,说明防火墙已开启,需要关闭 关闭操作如下图(systemctl stop firewalld) (2)阿里云服务器未配置端口放行(安全组配置):即8080端口放行 具体配置方法大家可以在网上搜索,很容易找到教程 (3)端口冲突,即tomcat默认的端口8080已经被占用
解决方案: a.关掉占用端口的进程,着个不建议使用,因为该进程可能有用,推荐用下面的方法 b.修改tomcat配置文件
进入编辑模式后,按“i”进入编辑模式
改变端口号,我的是改成了"9999",注意,改完之后注意在阿里云服务器配置端口放行 修改之后再次启动tomcat 此时可以进行访问测试,在浏览器中输入:公网ip:9999(修改后的端口号)
(三)Mysql安装(在线安装)
前面已经介绍了如何离线安装jdk和tomcat,所以mysql选择在线安装的方式 (1) 在线下载mysql rpm包 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
(2)rpm安装mysql rpm -ivh mysql57-community-release-el7-10.noarch.rpm
(3)通过yum安装mysql服务 yum -y install mysql-community-server 注意:如果提示如下 Public key for mysql-community-client-5.7.38-1.el7.x86_64.rpm is not installed Failing package is: mysql-community-client-5.7.38-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
原因是Mysql的GPG升级了,需要重新获取 使用以下命令即可(可能会比较慢,如果失败,多试几次)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
然后再重新安装mysql服务
yum -y install mysql-community-server
(4)加?开机启动 systemctl enable mysqld (5)启动MySQL服务(systemctl start mysqld)并查看运行情况(lsof -i:3306) 补充: 使用lsof -i:3306命令时,如果提示: -bash: lsof: command not found 说明linux没有这个命令 解决方式: yum install -y lsof 或者 yum install lsof -y
(6) 停止mysql服务 systemctl stop mysqld (7)查找mysql初始密码 cat /var/log/mysqld.log | grep password (8)登录mysql 如果出现红线标注的,说明登陆成功 如果未成功,显示连接失败,可能是因为没有开启mysql服务: systemctl start mysqld(开启后再次登录) (9)修改密码 a.设置密码的检查机制为LOW
set global validate_password_policy=LOW;(可自行设置)
b.设施改密码长度策略
set global validate_password_length=6;(可自行设置长度)
c.设置密码
set password=password('Yours Password');
d.授权远程登录
GRANT ALL PRIVILEGES on *.* to 'root'@'%' IDENTIFIED by 'Yours Password' WITH GRANT
OPTION;
刷新
flush PRIVILEGES;
(10)历经千辛万苦,终于安装完mysql接下来就可以使用工具进行连接测试 如Navicat等数据库连接工具 (11)迁移数据库文件 我是使用的Navicat工具连接的数据库,具体操作大家在网上搜索一下,不是很复杂。
(四)后端项目云部署(贼简单)
(1)上传以经打包好的jar包 我是在 /usr/local 下新建了一个fmmall文件夹,把jar包上传到这里了 (2)运行jar文件 java -jar api-1.0-SNAPSHOT.jar (不允许在后台运行)
java -jar api-1.0-SNAPSHOT.jar &(允许在后台运行,使用这个)
注意:要在 /usr/local/fmmall 下使用此命令
(3)OK,后端跑起来了,是不是贼简单!!!
(4)要停止的话,更简单 lsof -i:8080(soringboot项目端口号) 查询到进程的pid
(5)然后干掉它
kill -9 pid
前端部署
后端部署终于结束了,说实话,打字挺累的,尤其是一边操作,一边改bug,一边记录。废话不多说,前端云部署,采用两种方式tomcat和nginx。
(一)tomcat方式部署前端项目
(1)将前端文件上传到到 /usr/local/apache-tomcat-9.0.59/webapps/ 下,如图所示 (2)回到 /usr/local/apache-tomcat-9.0.59/bin 如图 (3).启动tomcat ./startup.sh
(4)测试 http://阿里云公网ip:端口号/fmall-static/index.html
(5)使用tomcat虽然可以实现部署,但是由于大量静态资源都会向tomcat发送请求,造成前端tomcat服务器压力过大,所以不建议使用tomcat部署前端项目
(二)nginx方式部署前端项目
要不先小小的介绍一手nginx。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
我剽窃的百科,大家想具体了解,可以查阅相关博客(是不是太敷衍了)。还是直奔主题,开始部署吧。
安装nginx之前需要一些准备工作。
(1) 安装编译?具(nginx安装之前需要编译)
yum install -y gcc gcc-c++
(2)安装PCRE a.下载
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
b.解压
tar -zxvf pcre-8.35.tar.gz
c.进?pcre?录
cd pcre-8.35
d.配置
./configure
e.编译安装
make && make install
(3)安装SSL库
切记:要先回到 /usr/local 目录下 然后再安装
cd /usr/local
a.下载
wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
注意 可能会报错
cannot verify www.openssl.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to www.openssl.org insecurely, use `--no-check-certificate'.
解决:使用如下命令重新下载
wget --no-check-certificate http://www.openssl.org/source/openssl-1.0.1j.tar.gz
b.解压
tar -zxvf openssl-1.0.1j.tar.gz
c.进?pcre?录
cd openssl-1.0.1j
d.配置
./config
e.编译安装
make && make install
(4)安装zlib库
切记:要先回到 /usr/local 目录下 然后再安装
cd /usr/local
a.下载
wget http://zlib.net/zlib-1.2.11.tar.gz
注意:上面的命令可能会失败,不过没关系,因为我试了n次,都没有成功,我在网上找了许多在线下载的链接都失败,不知道为什么,所以我最后决定用离线下载,如果你成功了,请忽略这段话。离线文件大家在官网就可以获取。 官网地址:https://www.zlib.net/
b.解压
tar -zxvf zlib-1.2.12.tar.gz
c.进?pcre?录
cd zlib-1.2.11
d.配置
./configure
e.编译安装
make && make install
(5)安装Nginx
切记:要先回到 /usr/local 目录下 然后再安装
cd /usr/local
a.下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz
b.解压
tar -zxvf nginx-1.16.1.tar.gz
c.设置安装目录
mkdir -p /usr/localserver/nginx
d.进入nginx安装包目录
cd nginx-1.16.1
e.
./configure --prefix=/usr/local/server/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
注意:如果配置失败,报错: ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=
option.
使用如下命令:
yum -y install openssl openssl-devel
然后再次执行如下命令
./configure --prefix=/usr/local/server/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre-8.35
f.编译安装
make && make install
g. 检查nginx安装情况
cd /usr/local/server/nginx
注意:安装在 /usr/local/nginx-1.16.1 下的 nginx-1.16.1只是安装包 /usr/local/server/ 下的 nginx 才是真正的nginx
h.测试 进入sbin目录
cd sbin
运行nginx
./nginx
检查运行i情况
lsof -i:80
i.访问测试 直接在浏览器地址栏输入云服务器公网ip,如下图所示则启动成功 j:关闭服务
查询到相应进程的pid
lsof -i:80
删除掉对应进程
kill -9 pid
(5)完成nginx部署 a.将前端资源上传到nginx–>/usr/local/server/nginx
b.修改nginx配置文件: cd /usr/local/server/config
[root@szs conf]
[root@szs conf]
修改如下 将root后面改成和图图示内容相同即可 启动并检查nginx服务,具体操作如图所示 (6)浏览器访问测试 云服务器公网ip/index.html(取决于前端资源 fmall-static中html文件的名字(随便一个测试效果即可))
总结
额,也没啥好说的,感谢大家能看到这里,如果部署过程中遇到了问题,大家请在评论区@我,可能回复的比较晚,大家不要着急。
|