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 } main
3、运行脚本:
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、运行
用户密码展示: