×

内网无法联网情况部署服务

抢沙发发表评论

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

屏幕截图 2025-05-21 151700.png

安装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

image.png

安装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
}

main

3、运行脚本:

image.png

4、临时密码在运行结果中查看:image.png

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、运行

image.png

用户密码展示:

image.png

验证

image.png


群贤毕至

访客