全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 457|回复: 0
打印 上一主题 下一主题

大模型手搓LTMP之GPT4

[复制链接]
跳转到指定楼层
1#
发表于 2023-11-10 14:28:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮我写个可以交互选择的shell脚本,实现以下功能:
1,输入选项1,安装最新稳定版的tengine+MySQL5.7+php8.0+最新稳定版的phpmyadmin
2,输入选项2,安装最新稳定版的tengine+MySQL8.0+php8.0+最新稳定版的phpmyadmin
3,输入选项3,单独安装最新稳定版的tengine
4,输入选项4,进入数据库子选项,单独选择MySQL5.7或者MySQL8.0进行安装,同时默认安装最新稳定版phpmyadmin
5,输入选项5,进入php子选项,单独选择php7.0-php8.2各版本进行安装

为了实现您所描述的功能,我将编写一个基于 Bash 的 CentOS shell 脚本。这个脚本将提供一个菜单系统,允许用户根据所选选项执行不同的安装任务。请注意,该脚本假设您拥有相应的权限(如 root 权限)来安装软件,并且您的 CentOS 系统已配置了必要的软件仓库。

以下是脚本的基本结构:
#!/bin/bash

# 函数定义

install_tengine() {
    echo "安装最新稳定版的 Tengine..."
    # 安装 Tengine 的命令
}

install_mysql57() {
    echo "安装 MySQL 5.7..."
    # 安装 MySQL 5.7 的命令
}

install_mysql80() {
    echo "安装 MySQL 8.0..."
    # 安装 MySQL 8.0 的命令
}

install_php() {
    local version=$1
    echo "安装 PHP $version..."
    # 根据版本安装 PHP 的命令
}

install_phpmyadmin() {
    echo "安装最新稳定版的 phpMyAdmin..."
    # 安装 phpMyAdmin 的命令
}

# 菜单选项

while true; do
    echo "选择一个操作:"
    echo "1) 安装 Tengine + MySQL 5.7 + PHP 8.0 + phpMyAdmin"
    echo "2) 安装 Tengine + MySQL 8.0 + PHP 8.0 + phpMyAdmin"
    echo "3) 单独安装 Tengine"
    echo "4) 安装数据库 (MySQL 5.7/8.0) 和 phpMyAdmin"
    echo "5) 安装 PHP (版本 7.0 - 8.2)"
    echo "6) 退出"
    read -p "输入选项(1-6): " option

    case $option in
        1)
            install_tengine
            install_mysql57
            install_php 8.0
            install_phpmyadmin
            ;;
        2)
            install_tengine
            install_mysql80
            install_php 8.0
            install_phpmyadmin
            ;;
        3)
            install_tengine
            ;;
        4)
            read -p "选择 MySQL 版本 (5.7 或 8.0): " mysql_version
            if [[ $mysql_version == "5.7" ]]; then
                install_mysql57
            elif [[ $mysql_version == "8.0" ]]; then
                install_mysql80
            else
                echo "无效的选择"
            fi
            install_phpmyadmin
            ;;
        5)
            read -p "输入 PHP 版本(7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2): " php_version
            install_php $php_version
            ;;
        6)
            break
            ;;
        *)
            echo "无效的选项,请重新输入!"
            ;;
    esac
done


请根据您的具体环境和需求,将注释部分替换为实际的安装命令。脚本提供了一个循环菜单,用户可以根据提示输入选项以执行相应的安装任务。脚本中的函数 install_tengine, install_mysql57, install_mysql80, install_php, 和 install_phpmyadmin 需要填充具体的安装命令。

在运行此脚本之前,请确保您的 CentOS 系统已经配置了相应的软件源,并且您有足够的权限来安装软件。

下边是各个组件的填充:
install_tengine() {
    echo "安装最新稳定版的 Tengine..."

    # 添加 Tengine 仓库
    # 请根据您的 CentOS 版本和 Tengine 版本调整以下命令
    yum install -y epel-release
    yum install -y wget
    wget http://tengine.taobao.org/download/tengine.tar.gz
    tar -zxvf tengine.tar.gz

    # 编译和安装 Tengine
    cd tengine-*
    ./configure
    make
    make install

    # 创建启动脚本
    cat > /lib/systemd/system/tengine.service <<EOF
[Unit]
Description=The Tengine HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

    # 启动并设置开机自启动
    systemctl start tengine
    systemctl enable tengine

    echo "Tengine 安装完成。"
}

这个函数首先下载 Tengine 的源代码,然后编译并安装它。接着,它创建了一个 systemd 服务脚本,以便您可以使用 systemctl 命令来管理 Tengine 服务(如启动、停止和重载配置)。最后,该服务被启动,并设置为在系统启动时自动启动。

请确保在运行此脚本之前,您的系统已经安装了所需的编译工具,如 gcc, make, pcre-devel, openssl-devel 等。如果没有安装,您可以使用 yum install 命令来安装它们。

install_mysql57() {
    echo "安装 MySQL 5.7..."

    # 添加 MySQL 5.7 仓库
    # 请根据您的 CentOS 版本调整以下命令
    wget https://dev.mysql.com/get/mysql5 ... e-el7-11.noarch.rpm
    rpm -ivh mysql57-community-release-el7-11.noarch.rpm

    # 安装 MySQL 服务器
    yum install -y mysql-community-server

    # 启动 MySQL 服务并设置开机自启
    systemctl start mysqld
    systemctl enable mysqld

    # 获取临时密码
    temp_pass=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')

    echo "MySQL 5.7 安装完成。"
    echo "MySQL 临时密码为: $temp_pass"
    echo "请立即更改 MySQL 密码并完成安全设置。"
}

这个函数首先下载并安装 MySQL 5.7 的官方 Yum 仓库。接着,它使用 yum 命令安装 MySQL 服务器。安装完成后,脚本启动 MySQL 服务并设置为开机自启。

MySQL 5.7 的安装会生成一个临时的 root 密码,存储在 /var/log/mysqld.log 文件中。这个密码是为了首次登录和安全设置。脚本将提取这个临时密码并打印出来,提示用户在首次登录后更改密码并进行必要的安全设置。

请注意,这个脚本假设您使用的是 CentOS 7。如果您使用的是其他版本的 CentOS,您可能需要调整 MySQL Yum 仓库的安装命令。同时,请确保在运行此脚本之前,您具有安装软件的相应权限。

install_mysql80() {
    echo "安装 MySQL 8.0..."

    # 添加 MySQL 8.0 仓库
    # 请根据您的 CentOS 版本调整以下命令
    wget https://dev.mysql.com/get/mysql8 ... se-el7-3.noarch.rpm
    rpm -ivh mysql80-community-release-el7-3.noarch.rpm

    # 安装 MySQL 服务器
    yum install -y mysql-community-server

    # 启动 MySQL 服务并设置开机自启
    systemctl start mysqld
    systemctl enable mysqld

    # 获取临时密码
    temp_pass=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')

    echo "MySQL 8.0 安装完成。"
    echo "MySQL 临时密码为: $temp_pass"
    echo "请立即更改 MySQL 密码并完成安全设置。"
}

这个函数首先下载并安装 MySQL 8.0 的官方 Yum 仓库。然后,它使用 yum 命令安装 MySQL 服务器。安装完成后,脚本启动 MySQL 服务并设置为开机自启。

MySQL 8.0 的安装也会生成一个临时的 root 密码,存储在 /var/log/mysqld.log 文件中。这个密码用于首次登录和安全设置。脚本将提取这个临时密码并打印出来,提示用户在首次登录后更改密码并进行必要的安全设置。

请注意,此脚本假设您使用的是 CentOS 7。如果您使用的是其他版本的 CentOS,您可能需要调整 MySQL Yum 仓库的安装命令。同时,请确保在运行此脚本之前,您具有安装软件的相应权限。

install_php() {
    local version=$1
    echo "安装 PHP $version..."

    # 为 PHP 安装添加 EPEL 和 REMI 仓库
    yum install -y epel-release yum-utils
    yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

    # 启用 PHP 特定版本的仓库
    yum-config-manager --disable 'remi-php*'
    yum-config-manager --enable "remi-php${version//./}"

    # 安装 PHP 和常用的扩展
    yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

    # 启动 PHP-FPM 服务并设置开机自启
    systemctl start php-fpm
    systemctl enable php-fpm

    echo "PHP $version 安装完成。"
}


install_phpmyadmin() {
    echo "安装最新稳定版的 phpMyAdmin..."

    # 添加 EPEL 仓库
    yum install -y epel-release

    # 安装 phpMyAdmin
    yum install -y phpmyadmin

    # 配置 phpMyAdmin
    # 注意:根据您的环境,您可能需要调整配置文件(如允许远程访问)

    # 重启 Apache 或 Nginx 以应用更改
    # 请根据您的环境选择正确的命令
    systemctl restart httpd
    # 或者,如果您使用 Nginx + PHP-FPM:
    # systemctl restart nginx
    # systemctl restart php-fpm

    echo "phpMyAdmin 安装完成。"
}


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-12 11:55 , Processed in 0.065143 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表