小型网站项目完整部署流程(Linux操作系统——CentOS7.5)

简介: 小型网站项目完整部署流程(Linux操作系统——CentOS7.5)

前言


网络服务器以Linux操作系统的居多,因其天然的底层框架优势。笔者因为项目需求要在Linux操作系统服务上部署Java web项目,手头上没有该操作系统的服务器,因此使用虚拟机技术虚拟出一台CentOS7.5的虚拟服务器,并以此为基础进行项目部署。笔者在学生阶段主要使用的是Windows系统,对Linux操作系统停留在认知的阶段,基本的命令会一点,就这样一步一步的走了出来,完成了Java web项目的成功部署。途中踩到的坑很多,记录下来,与各位分享。


背景


连接虚拟机会话如图所示。虚拟机的安装和连接在这里不再赘述。请参见这篇博客。

1666088833999.jpg


多个依赖的中间件

  • 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太大了,占用内存,被我删除了。因为只有其余三个依赖包,如图所示。

image.png


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 -> 编译 ->配置

详情参照在Linux下安装redis详细安装教程图文

在安装需要联网时,配置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

1666097458186.jpg

接着进入配置界面;

1666097472108.jpg


在项目目录target文件夹下可以找到打包好的war包;

1666097490943.jpg


看一下war包内容。笔者在打包时候采用Export -> war方式,导致war包目录不通进而导致资源访问不到,需要对资源进行放行。


这个是Maven安装的war包目录。

1666097505596.jpg


这个通过STS3导出功能进行导出的war包目录。资源被放在了WEB_INF文件夹下了。

image.png



最后将war包放到tomcat/webapps下,启动Tomcat完成部署。


相关文章
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
880 8
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
安全 前端开发 开发工具
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
938 5
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
11072 2
|
自然语言处理 安全 开发工具
分享一个纯净无广、原版操作系统、开发人员工具、服务器等资源免费下载的网站
分享一个纯净无广、原版操作系统、开发人员工具、服务器等资源免费下载的网站
4630 4
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
2535 13
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
人工智能 Anolis 开发者
|
12月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
1085 1
二、Linux文本处理与文件操作核心命令