腾讯云Linux环境下部署项目步骤
前期准备
本项目以腾讯云CentOS7 64位系统为例
提前准备:
- Linux云服务器
- 【工具使用|Linux环境下部署web项目详细步骤——CentOS7】Xshell(连接远程服务器)、XFtp(文件传输)
- web项目所需Linux安装包
如有需要,附所需安装包地址(tomcat、jdk1.8,无数据库):
https://download.csdn.net/download/weixin_42532968/12280868
因为MySQL安装包过大,需要至官网下载
https://dev.mysql.com/downloads/mysql/
文章图片
- Xshell连接远程服务器
文章图片
- 建立连接填写服务器密码
文章图片
出现如下界面连接成功!
文章图片
传输Linux下部署web项目所需安装包
在Xshell中,首先将目录切换至/home目录
文章图片
1.点击
文章图片
2.出现如下界面:将文件拖入服务器/home目录下
文章图片
jdk安装(rpm安装)
1、rpm下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、如果有安装openjdk 则卸载
[root@ ~]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
# 检查
[root@ ~]# rpm -qa|grep jdk
jdk1.8.0_121-1.8.0_121-fcs.x86_64
# 卸载 -e --nodeps 强制删除
[root@ ~]# rpm -e --nodeps jdk1.8.0_121-1.8.0_121-fcs.x86_64
[root@ ~]# java -version
-bash: /usr/bin/java: No such file or directory# OK
3、安装JDK,切换至home目录
# 安装java rpm
[root@ ]# rpm -ivh jdk-8u221-linux-x64.rpm# 测试 java -version
[root@kuangshen java]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
Tomcat安装(解压缩安装)
1、安装好了Java环境后,准备好Tomcat的安装包!
2、在/usr/目录下新建tomcat目录:mkdir tomcat
3、将home目录下tomcat文件移动到/usr/tomcat/下,并解压
[root@ home]# mv apache-tomcat-9.0.22.tar.gz /usr
[root@ home]# cd /usr/tomcat
[root@ tomcat]# ls
apache-tomcat-9.0.22.tar.gz
[root@ tomcat]# tar -zxvf apache-tomcat-9.0.22.tar.gz# 解压
3、运行Tomcat,进入bin目录
# 执行:startup.sh -->启动tomcat
# 执行:shutdown.sh -->关闭tomcat
./startup.sh
./shutdown.sh
4、确保Linux的防火墙端口是开启的主要端口:80、443、3306、8080端口打开,其余端口根据自己项目进行配置如果是阿里云,需要保证阿里云的安全组策略是开放的!命令如下
# 查看firewall服务状态
systemctl status firewalld# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop# 查看防火墙规则
firewall-cmd --list-all# 查看全部信息
firewall-cmd --list-ports# 只看端口信息# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
***重启防火墙:systemctl restart firewalld.service
或:firewall-cmd --reload
命令含义:
--zone #作用域
--add-port=80/tcp#添加端口,格式为:端口/通讯协议
--permanent#永久生效,没有此参数重启后失效
安装Mysql服务器
首先检查是否有以前版本,使用如下命令:
rpm -qa | grep -i mysql(检查之前版本)
yum -y remove mysql-libs*(卸载之前安装所有)
进入官网
1.Select Operating System: 选择 Red Hat ,CentOS 是基于红帽的,Select OS Version: 选择 linux 7
2.选择 RPM Bundle 点击 Download
3.通过 cd /usr/local/ 命令进入根目录下的usr目录下的local目录,这个目录是放一些本地的共享资源的,创建mysql文件夹
cd /usr/local/mysql
将刚刚下载好的文件移动到此解压
tar -xvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar命令解压tar 包
文章图片
将除了rpm-bundle.tar包之外的所有rpm包进行安装,命令如下:
rpm -ivh rpm安装包名称 --nodeps --force
例如:rpm -ivh mysql-community-client-8.0.19-1.el7.x86_64.rpm --nodeps --force
将所有rpm包安装后,初始化mysql数据库 注意: 因为windows下Mysql是不区分大小写的,也就是 lower_case_table_names=1
而Linux系统下安装Mysql后,系统默认是明确区分大小写,因此注意设置。
修改数据库是否区分大小写方法(若不需要请忽略)
在mysql下使用命令查看数据库是否区分大小写:
show variables like '%lower%';
//结果为0是区分,1是不区分
- 开mysql配置文件
vim /etc/my.cnf
- 在尾部追加一行
lower_case_table_names=1
并保存,然后再初始化数据库。 - 重启mysql,
systemctl restart mysqld.service
错误类似于
Job for mysqld.service failed because the control process exited with error...
然后就无法启动 mysql 服务了,除非打开
vim /etc/my.cnf
把追加的lower_case_table_names=1
删除掉。解决方法如下(不在意数据)
- 停止MySQL
systemctl stop mysqld.service
- 删除 MySQL的数据 /var/lib/mysql
rm -rf /var/lib/mysql
- 此时按照以下的方法进行操作即可。
1. mysqld --initialize;
2. chown mysql:mysql /var/lib/mysql -R;
3. systemctl start mysqld.service;
4. systemctlenable mysqld;
若出现:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory错误,
请输入以下命令:
yum install -y libaio //安装后在执行上述命令
此时数据库密码为mysql自行设置,需要通过如下命令:
cat /var/log/mysqld.log | grep password
查看数据库密码
文章图片
通过 mysql -uroot -p 敲回车键进入数据库登陆界面
输出刚刚获得的数据库初始密码进入数据库,复制粘贴即可,登录时不显示密码
文章图片
在Mysql命令下,输入如下命令,将密码初始化为root(可根据需求自行更改)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
成功后退出,再次进入mysql通过新密码进行登录
文章图片
配置服务器远程登录
因服务器端并无图形化界面显示mysql,因此作者采用使用本地远程登录服务器方式进行登录
配置远程访问用户授权
create user 'root'@'%' identified with mysql_native_password by 'root';
//创建远程登录密码为root,但服务器远程登录建议使用复杂密码!!!
grant all privileges on *.* to 'root'@'%' with grant option;
//添加数据库所有权限给远程用户
flush privileges;
//刷新数据库权限
通过 ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
命令修改加密规则,MySql8.0 版本 和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
flush privileges;
配置防火墙
1.首先关闭firewall
1. systemctl stop firewalld.service;
2. systemctl disable firewalld.service;
3. systemctl mask firewalld.service;
2.通过yum -y install iptables-services 安装iptables防火墙
3.通过以下命令启动设置防火墙
systemctl enable iptables;
systemctl start iptables;
4.通过vim /etc/sysconfig/iptables命令添加端口
文章图片
添加如上端口,命令如下(除以下端口,自己项目所需开放端口自行设置):
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
添加完成后退出vim,通过:
systemctl restart iptables.service 命令重启防火墙使配置生效
systemctl enable iptables.service 命令设置防火墙开机启动
通过windows或其他平台可视化软件远程连接数据库,笔者使用windows平台的navicat软件
文章图片
建立连接
文章图片
连接成功
然后建立数据表(根据项目需求,如不清楚请查看项目配置文件)
文章图片
建表格式为:
文章图片
然后在所需数据库中,右键运行sql文件即可
文章图片
此刻数据库工作完成
导出war包 通过idea导出项目war包
文章图片
2.
文章图片
3.点击+号后弹出以下界面,选择如图:
文章图片
4.在下图中,自行设置输出war包目录
文章图片
5.返回后,点击工具栏中Build
文章图片
文章图片
Build后即可,然后到输出路径,使用Xftp将war包传输至tomact目录下webapp目录,等待tomcat自动解压,完成后即可访问。
修改项目地址为tomcat首页 若需要更改首页为项目地址,方案如下:
1.修改tomcat的核心配置文件server.xml,将默认的8080端口更改为80端口
文章图片
在server.xml文件的前添加如下一行代码
文章图片
注意:docBase内值为项目的名称,按需修改,reloadable="true"表示修改了jsp文件后不需要重启就可以实现显示的同步。此时即可通过服务器Ip访问项目。部署完毕
推荐阅读
- Java|Linux 服务器上部署web程序
- 分享一个我看源码时的小技巧。
- 《从零搭建开发脚手架》|从零搭建开发脚手架 细说权限管理ACL RBAC 按钮 接口 数据权限等
- 【spring源码学习】事务
- 大数据|关于NLP相关技术全部在这里(预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、语法分析、文本处理...)
- 镜像分层原理及容器层写时复制
- 一起刷好题|《力扣每日一题》—— 合并两个有序链表
- 一起刷好题|《牛客每日一题》链表分割、输出链表的倒数第k个结点
- 一起刷好题|力扣每日一题(环形链表II)