前言
网络服务器以Linux操作系统的居多,因其天然的底层框架优势。笔者因为项目需求要在Linux操作系统服务上部署Java web项目,手头上没有该操作系统的服务器,因此使用虚拟机技术虚拟出一台CentOS7.5的虚拟服务器,并以此为基础进行项目部署。笔者在学生阶段主要使用的是Windows系统,对Linux操作系统停留在认知的阶段,基本的命令会一点,就这样一步一步的走了出来,完成了Java web项目的成功部署。途中踩到的坑很多,记录下来,与各位分享。
背景
连接虚拟机会话如图所示。虚拟机的安装和连接在这里不再赘述。请参见这篇博客。
多个依赖的中间件
- JDK1.8 (运行平台), 版本详情为:
java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
- MySQL5.7(持久存储),版本详情为:
mysql Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using EditLine wrapper
- Tomcat8.5 (网站服务器容器),版本详情为:
Apache Tomcat/8.5.58
- Redis 采用最新版本即可(中间缓存),版本详情为:
Redis server v=6.0.9 sha=00000000:0 malloc=libc bits=64 build=9c395f6f2c1461e4
- 查询命令为:
redis-server --version
环境
将所需的中间件软件压缩包通过命令rz上传至虚拟机中(本次测试文件路径为/usr/local/src
)。因为MySQL太大了,占用内存,被我删除了。因为只有其余三个依赖包,如图所示。
1.Java环境安装及配置
首先检测一下系统安装了JDK吗?CentOS7.5系统自带OpenJDK,将其删除。
详情参照在CentOS7.4中安装jdk的几种方法及配置环境变量。
解压 -> 移动到指定文件夹下
tar xzvf jdk-8u151-linux-x64.tar.gz mv jdk1.8.0_151 /usr/local/java
配置环境变量(老套路了), 通过vim /etc/profile
打开文件,追加下列变量声明
JAVA_HOME=/usr/local/java JRE_HOME=/usr/local/java/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME CLASSPATH
添加完后通过命令source /etc/profile
使其生效
2.Tomcat安装及配置
解压 -> 移动到指定文件夹下
tar xzvf apache-tomcat-8.5.58.tar.gz mv apache-tomcat-8.5 /usr/local/tomcat
删除Tomcat中的webapps文件夹下的一系列文件如docs、examples、manager、ROOT、host-manager进行容器安全加固
3.Redis安装及配置
解压 -> 移动 -> 安装gcc依赖 -> 升级gcc -> 编译 ->配置
在安装需要联网时,配置DNS为114.114.114.114 8.8.8.8
接着对yum国内源进行更改。因为期间遇到需要连接外网的安装步骤,如下载gcc、升级gcc。否则,下载速度很慢或者获取资源超时。
wget -P /etc/yum.repos.d http://mirrors.163.com/.help/CentOS7-Base-163.repo
接着安装Redis
cd /usr/local/src tar xzvf redis-6.0.9.tar.gz mv redis-6.0.9 /usr/local/redis #依赖安装 yum install gcc yum install gcc-c++ #升级 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash #编译 make #创建文件夹 mkdir -p /usr/local/redis/bin mkdir -p /usr/local/redis/etc #复制文件 cp -aRp redis.conf /usr/local/redis/etc cp -aRp mkreleasdhdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/redis/bin
配置Redis
通过命令打开文件vim /usr/local/redis/etc/redis.conf
daemonize yes #(找到这一项,修改为yes) bind 192.168.225.128 127.0.0.1 #设置本机服务IP,应是内网IP。外网不安全
启动
redis-server /usr/local/redis/etc/redis.conf #用具体的文件路径来启动
4.Mysql安装及配置
解压 -> 移动 -> 查重 -> 配置
cd /usr/local/src yum -y install numactl #解决安装过程中的报错 mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql #创建文件夹 mkdir /usr/local/mysql/data #创建用户和组 groupadd mysql useradd -r -g mysql mysql #安装依赖包 yum install libaio #将安装目录所有者及所属组改为mysql chown -R mysql.mysql /usr/local/mysql #初始化 /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize #记住生成的密码bwclBwti,1gh #编辑配置文件(重点对象) vim /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/usr/local/mysql/mysql.sock pid_file=/usr/local/mysql/mysql.pid log-error=/usr/local/mysql/data/mysqllog.err user=mysql [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] port=3306 socket=/usr/local/mysql/mysql.sock default-character-set=utf8 #将mysql加入到服务中 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql #开机启动 chkconfig mysql on #启动mysql service mysql start #配置环境变量 export MYSQL_HOME="/usr/local/mysql" export PATH="$PATH:$MYSQL_HOME/bin" #使能生效 source /etc/profile
查重命令
rpm -qa | grep mysql
验证
mysql -u root -p
更改初始化时产生的密码
最后进行数据库创建,导入sql文件
项目部署
特别需要注意的是,要知道如何查看日志文件和关闭防火墙,在关闭防火墙时,也要注意版本的不同导致命令的不同。
通过Maven方式将开发包打包成wwar包进行部署。如图所示,
项目名(右键)-> Run As -> Maven build
接着进入配置界面;
在项目目录target文件夹下可以找到打包好的war包;
看一下war包内容。笔者在打包时候采用Export -> war
方式,导致war包目录不通进而导致资源访问不到,需要对资源进行放行。
这个是Maven安装的war包目录。
这个通过STS3导出功能进行导出的war包目录。资源被放在了WEB_INF
文件夹下了。
最后将war包放到tomcat/webapps
下,启动Tomcat完成部署。