Rocky Linux8.10 部署服务
web服务器:JDK+tomcat
数据库服务器:mysql
应用服务:ftp
web服务器部署
tomcat (java编写)部署需要依赖java环境
安装JDK
1、下载JDK链接 tar包下载后通过xftp拖到机器内
2、jdk安装shell脚本:
#!/bin/bash
# 版本: JDK_8u431_X86_64
# name: lyx
# 功能: 自动安装 Oracle JDK 8u431 并配置环境变量
# 使用方法: 直接运行脚本,按提示输入 JDK 安装包路径
# 日志文件路径
LOG_FILE="/var/log/jdk_install.log"
# 将所有输出记录到日志文件
exec > >(tee -a "$LOG_FILE") 2>&1
echo "JDK 安装开始于 $(date)"
# 提示用户输入 JDK 安装包路径
read -p "请输入 jdk-8u431-linux-x64.tar.gz 的完整路径: " JDK_PKG
# 检查文件是否存在
if [ ! -f "$JDK_PKG" ]; then
echo "错误: 在路径 $JDK_PKG 未找到 JDK 安装包!"
exit 1
fi
# 关闭防火墙
echo -e "正在关闭 firewalld...\n"
systemctl disable firewalld && systemctl stop firewalld
# 禁用 SELinux
echo -e "正在禁用 SELinux...\n"
SESTATUS=$(grep -i '^SELINUX=' /etc/selinux/config | awk -F"=" '{print $2}')
if [ "${SESTATUS}" != "disabled" ]; then
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
echo "SELinux 将在重启后生效。"
fi
# 移除 OpenJDK(如果存在)
echo -e "正在移除 OpenJDK...\n"
rpm -e --nodeps $(rpm -qa | grep openjdk) 2>/dev/null
# 安装 JDK
echo -e "正在从 $JDK_PKG 安装 JDK 8u431...\n"
tar -zxvf "$JDK_PKG" -C /usr/local/
if [ $? -ne 0 ]; then
echo "解压 JDK 失败!"
exit 1
fi
mv /usr/local/jdk1.8.0_431 /usr/local/jdk
# 配置环境变量
echo -e "正在配置环境变量...\n"
grep "JAVA_HOME=/usr/local/jdk" /etc/profile >/dev/null
if [ $? -ne 0 ]; then
cat >>/etc/profile << EOF
export JAVA_HOME=/usr/local/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
EOF
fi
# 创建软链接并重新加载配置
ln -sf /usr/local/jdk/bin/java /usr/bin/java
source /etc/profile
# 验证安装
java -version
if [ $? -ne 0 ]; then
echo "JDK 安装失败!"
exit 1
fi
echo -e "\nJDK 安装成功!"
echo "JAVA_HOME: $JAVA_HOME"
echo "Java 版本: $(java -version 2>&1 | head -1)"./jdk_start.sh /data01/anzhuang/jdk-8u431-linux-x64.tar.gz

安装tomcat
1、下载tar包,上传tar包
2、运行脚本安装:
#!/bin/bash
# Author: lyx
# 使用范围: 适用于已安装 JDK 8u431 并已下载 Tomcat tar 包
# 使用方法: sudo ./install_tomcat.sh /path/to/apache-tomcat-x.x.x.tar.gz
# 检查是否以 root 运行
if [ "$(id -u)" -ne 0 ]; then
echo "错误:请使用 root 用户或 sudo 运行此脚本!"
exit 1
fi
# 检查是否传入 Tomcat tar 包路径
if [ -z "$1" ]; then
echo "用法: $0 /path/to/apache-tomcat-x.x.x.tar.gz"
exit 1
fi
TOMCAT_TAR_PATH="$1"
INSTALL_DIR="/data01/tomcat"
# 检查 JDK 8u431 是否安装
echo "检查 JDK 8u431 是否安装..."
JAVA_VERSION=$(java -version 2>&1 | grep -oP 'version "\K1\.8\.0_431')
if [ "$JAVA_VERSION" != "1.8.0_431" ]; then
echo "错误:未检测到 JDK 8u431,请先安装!"
exit 1
fi
echo "✓ JDK 8u431 已安装。"
# 检查 Tomcat tar 包是否存在
if [ ! -f "$TOMCAT_TAR_PATH" ]; then
echo "错误:Tomcat tar 包不存在: $TOMCAT_TAR_PATH"
exit 1
fi
# 创建 /data01 目录(如果不存在)
mkdir -p /data01
cd /data01
# 解压 Tomcat
echo "解压 Tomcat 到 $INSTALL_DIR..."
rm -rf "$INSTALL_DIR" # 如果之前安装过,先删除旧版本
tar -zxvf "$TOMCAT_TAR_PATH" -C /data01
mv "/data01/apache-tomcat-"* "$INSTALL_DIR"
# 配置环境变量
echo "配置 CATALINA_HOME 环境变量..."
if ! grep -q "CATALINA_HOME" /etc/profile; then
cat >> /etc/profile <<EOF
export CATALINA_HOME=${INSTALL_DIR}
export PATH=\$CATALINA_HOME/bin:\$PATH
EOF
source /etc/profile
fi
# 开放防火墙(可选)
if command -v firewall-cmd &>/dev/null; then
echo "开放防火墙 8080 端口..."
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
fi
#开启 Tomcat 服务
sh /data01/tomcat/bin/startup.sh
# 验证安装
echo "验证 Tomcat 是否启动..."
sleep 5 # 等待 Tomcat 启动
if curl -s http://localhost:8080 | grep -q "Apache Tomcat"; then
echo -e "\n✓ Tomcat 安装成功!"
echo "安装目录: $INSTALL_DIR"
echo "管理命令: systemctl [start|stop|restart|status] tomcat"
echo "访问地址: http://服务器IP:8080"
else
echo "错误:Tomcat 启动失败,请检查日志: $INSTALL_DIR/logs/catalina.out"
exit 1
fi
echo 'tomcat启动命令 sh /data01/tomcat/bin/startup.sh'
echo 'tomcat关闭命令 sh /data01/tomcat/bin/shutdown.sh'3、运行脚本安装:./tomcat_start.sh /data01/anzhuang/apache-tomcat-9.0.97.tar.gz

安装mysql服务
1、下载tar包,上传tar包
2、运行脚本安装:
#!/bin/bash
#Description : MySQL8.4.4 Install Script (tar双加载)
#Author : lyx
#Version : 3.0
### 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
function MySQL_cnf(){
cd /root
cat > ./my.cnf <<'EOF'
[mysqld]
user = mysql
port = 3306
basedir = /home/mysql/mysqlbase/mysql-8.4.4
datadir = /home/mysql/data
socket = /home/mysql/mysqlbase/mysql.sock
pid_file = dms-mysql.pid
skip_name_resolve = 1
open_files_limit = 65535
default_time_zone = "+8:00"
#character
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
[client]
default-character-set=utf8mb4
port = 3306
socket = /home/mysql/mysqlbase/mysql.sock
[mysqldump]
quick
[mysql]
no_auto_rehash
loose-skip-binary-as-hex
EOF
}
function MySQL_User() {
id mysql >/dev/null 2>&1
if [ "$?" != "0" ]; then
useradd -s /sbin/nologin mysql >/dev/null 2>&1
fi
}
function Create_DIR() {
DIRECTORY=("/home/mysql/data" "/home/mysql/mysqlbase" "/home/mysql/mysqllog")
for i in "${DIRECTORY[@]}"; do
if [ ! -d "${i}" ]; then
mkdir -p "${i}"
fi
done
}
function DOWNLOAD_MYSQL() {
echo_color "$YELLOW" "请选择 MySQL tar 包获取方式:"
echo "1) 自动下载 (wget)"
echo "2) 指定本地 tar 包路径"
read -p "请输入选项 [1/2]: " choice
case "$choice" in
1)
echo "Downloading MySQL 8.4.4..."
wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz -P /root/
if [ "$?" != "0" ]; then
echo "Failed to download MySQL 8.4.4."
exit 1
fi
;;
2)
read -p "请输入本地 tar 包的完整路径: " local_tar
if [ -f "$local_tar" ]; then
TAR_SOURCE="$local_tar"
mv $local_tar /root/
else
echo_color "$RED" "错误: 文件不存在,请检查路径。"
exit 1
fi
;;
*)
echo_color "$RED" "无效选项,退出脚本。"
exit 1
;;
esac
}
function INSTALL() {
chown -R mysql:mysql /home/mysql/{data,mysqlbase,mysqllog}
tar -xvf /root/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz -C /home/mysql/mysqlbase
mv /home/mysql/mysqlbase/mysql-8.4.4-linux-glibc2.28-x86_64 /home/mysql/mysqlbase/mysql-8.4.4
/home/mysql/mysqlbase/mysql-8.4.4/bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysqlbase/mysql-8.4.4/ --datadir=/home/mysql/data/
if [ "$?" != "0" ]; then
echo "An error occurs during the installation of the MySQL Database Service."
exit 1
fi
if [ -f /etc/my.cnf ]; then
rm -rf /etc/my.cnf
fi
mv /root/my.cnf /etc/
if [ -f /etc/init.d/mysqld ]; then
rm -rf /etc/init.d/mysqld
fi
cp /home/mysql/mysqlbase/mysql-8.4.4/support-files/mysql.server /etc/init.d/mysqld
if [ ! -f /usr/bin/mysql ]; then
ln -s /home/mysql/mysqlbase/mysql-8.4.4/bin/mysql /usr/bin/mysql
fi
}
function MYSQL_LOG() {
MYSQL_LOG=("/home/mysql/mysqllog/error_log" "/home/mysql/mysqllog/mybinlog")
for j in "${MYSQL_LOG[@]}"; do
if [ ! -d "${j}" ]; then
mkdir -p "${j}"
fi
done
touch /home/mysql/mysqllog/error_log/error.log
touch /home/mysql/mysqllog/mysql-slow.log
chown -R mysql:mysql /home/mysql/mysqllog
}
function MYSQL_START() {
/etc/init.d/mysqld start
sleep 5
if [ "$?" != "0" ]; then
echo "MySQL Service Running Is Error."
exit 1
else
echo "MySQL Service Running Is Successful."
fi
}
function CLEAR_tat() {
cd /root
rm -rf mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
if [ "$?" != "0" ]; then
echo "MySQL tar clear Successful"
else
echo "MySQL tar no clear"
exit 1
fi
}
function main() {
MySQL_cnf
MySQL_User
Create_DIR
DOWNLOAD_MYSQL
INSTALL
MYSQL_LOG
MYSQL_START
CLEAR_tat
}
main3、运行脚本:

4、临时密码在运行结果中查看:
5、修改密码:
ALTER USER 'username'@'hostname' IDENTIFIED BY 'new_password';
安装FTP服务:
1、因为无法联网所有使用另一个可以联网的机器将需要的包下载打包
wget https://security.appspot.com/downloads/vsftpd-3.0.5.tar.gz mkdir /tmp/ftp-deps yum install --downloadonly --downloaddir=/tmp/ftp-deps vsftpd yum install --downloadonly --downloaddir=/tmp/ftp-deps gcc make openssl-devel tar czvf ftp-offline-install.tar.gz /tmp/ftp-deps vsftpd-3.0.5.tar.gz
然后将打好的包上传到内网服务器上
ftp-offline-install.tar.gz打包好的tar包和所需的rpm包
2、整合包放在/data01目录下
3、运行脚本:
#!/bin/bash #zuozhe:lyx # 定义变量 DEPENDENCY_DIR="/data01/ftp-deps" # 依赖包存放目录 VSFTPD_SOURCE="/data01/vsftpd-3.0.5.tar.gz" # vsftpd 源码包路径 FTP_USER="ftpuser" # FTP 用户名 FTP_PASSWORD="123456" # FTP 密码(建议安装后修改) # 检查是否为 root 用户 if [ "$(id -u)" -ne 0 ]; then echo "错误:必须使用 root 用户运行此脚本!" exit 1 fi #解包分解 cd /data01 tar -zxvf ftp-offline-install.tar.gz # 步骤 1:安装依赖包 echo "正在安装依赖包..." if [ -d "$DEPENDENCY_DIR" ]; then cd "$DEPENDENCY_DIR" || exit for rpm_pkg in *.rpm; do if [ -f "$rpm_pkg" ]; then rpm -ivh "$rpm_pkg" --nodeps --force fi done else echo "错误:依赖包目录 $DEPENDENCY_DIR 不存在!" exit 1 fi # 步骤 2:解压并编译 vsftpd echo "正在编译安装 vsftpd..." if [ -f "$VSFTPD_SOURCE" ]; then tar xzvf "$VSFTPD_SOURCE" -C /data01 cd /data01/vsftpd-3.0.5 || exit make && make install else echo "错误:vsftpd 源码包 $VSFTPD_SOURCE 不存在!" exit 1 fi # 步骤 3:配置 vsftpd echo "正在配置 vsftpd..." cat > /etc/vsftpd.conf <<EOF anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES listen=YES EOF # 步骤 4:创建 FTP 用户 echo "正在创建 FTP 用户 $FTP_USER..." useradd -m "$FTP_USER" echo "$FTP_USER:$FTP_PASSWORD" | chpasswd # 步骤 5:设置 Systemd 服务 echo "正在配置 Systemd 服务..." cat > /etc/systemd/system/vsftpd.service <<EOF [Unit] Description=VSFTPD Server After=network.target [Service] Type=simple ExecStart=/usr/local/sbin/vsftpd /etc/vsftpd.conf ExecStop=/bin/kill -9 \$MAINPID [Install] WantedBy=multi-user.target EOF # 重新加载 Systemd 并启动服务 systemctl daemon-reload systemctl enable vsftpd systemctl start vsftpd # 删除包 rm -rf ftp-deps vsftpd-3.0.5 rm -rf ftp-offline-install.tar.gz vsftpd-3.0.5.tar.gz # 检查服务状态 if systemctl is-active --quiet vsftpd; then echo "vsftpd 服务已成功启动!" echo "FTP 用户: $FTP_USER" echo "FTP 密码: $FTP_PASSWORD" echo "请运行 'passwd $FTP_USER' 修改默认密码。" else echo "警告:vsftpd 服务启动失败,请手动检查!" fi
4、运行

用户密码展示:

验证
