🌈前言:最近在部署一个javaweb项目,起初是部署在ubuntu系统上进行测试,后又被通知最终需要部署在centos8系统上。由于平时使用的都是Ubuntu系统,对在centos上部署不是很熟悉,因此记录一下😄。感兴趣可以关注作者,会不定时更新新内容。
所用到的配置:
- centos8
- mysql8
- tomcat9
- java11
1 . 更换系统源为阿里源
- 备份原有的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
- 获取阿里云的配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
- 更新缓存
yum makecache
- 更新
yum -y update
2. 安装MySQL8
centos8已经没有mysql5.7的存储库了,因此决定安装Mysql8
2.1 卸载原有的MySQL数据库
rpm -qa |grep -i mysql
#采用 yum remove 命令卸载列出的mysql文件,若不显示则表示未安装mysql
2.2 安装MySQL8
-
下载安装包
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm yum install mysql80-community-release-el8-1.noarch.rpm
-
禁用Centos8自带的MySQL模块
yum module disable mysql
输入 y
-
安装MySQL
yum install mysql-community-server
输入 y
-
启动服务
systemctl start mysqld.service
-
查看mysql运行状态
systemctl status mysqld.service
-
查看mysql初始密码
grep "password" /var/log/mysqld.log
-
进入mysql
mysql -u root -p
-
更新默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123...ROOT...root'; flush privileges; exit;
注意密码过于简单了会显示密码强度过弱
- 密码必须包含数字、大小写字母以及特殊服务号
3. 安装oracle Jdk11
- 下载并将
oracle Jdk11
上传到服务器
scp ./jdk erer@123.123.123.123:/usr/local/
- 解压
tar -zxvf jdk11.tar.gz
-
生成jre
bin/jlink --module-path jmods --add-modules java.desktop --output jre
-
注册
vim /etc/profile
# 添加如下内容
JAVA_HOME=/usr/local/jdk-11.0.12
JRE_HOME=$JAVA_HOME
CLASSPATH=$JAVA_HOME/lib
PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
- 重新加载该文件
source /etc/profile
- 测试
java -version
4. 安装tomcat
- 复制文件至服务器
scp 到服务器/usr/local/
- 解压
tar -zxvf tomcat.tar.gz
- 测试运行
cd /tomcat/bin/
bash startup.sh
- 访问页面
ip:8080
- 测试关闭
cd /tomcat/bin/
bash shutdown.sh
- 配置tomcat防止中文路径乱码问题
vim /tomcat/conf/server.xml
#更改如下代码:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
#为:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
# 即添加 URIEncoding="UTF-8" 属性
5. 开放80端口
-
查看防火墙是否开启
systemctl status firewalld # actice
-
若没有请执行以下命令启动:
systemctl start firewalld
-
查看80端口是否开放
firewall-cmd --query-port=80/tcp # 输出结果为 no/yes
-
若没有,执行以下命令开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
-
记得重启防火墙
systemctl restart firewalld
-
查看被开放的端口
firewall-cmd --zone=public --list-ports
6. 部署网站
-
上传到服务器
-
cp文件至
tomcat/webapps/
-
删除原有的
ROOT
目录 -
解压war包
unzip xxx.war -d ROOT
-
赋予tomcat以创建文件夹的权限
vim tomcat/bin/catalina.sh
# 找到以下内容:
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
UMASK="0027"
fi
umask $UMASK
# 改为:
# Set UMASK unless it has been overridden
if [ -z "$UMASK" ]; then
UMASK="0000"
fi
umask $UMASK
-
创建数据库
CREATE DATABASE `tutor` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-
导入数据
source sql文件