install kodbox

#!/bin/bash
#install kodbox
echo "欢迎使用kodbox安装脚本!操作即将开始"
sleep 1
 加载动画
function show_loading_animation() {
    local chars="/------++++++\|"
   local delay=0.1
    while :; do
        for (( i=0; i<${#chars}; i++ )); do
            echo -ne "loading${chars:$i:7}" "\r"
            sleep $delay
        done
    done
 sleep 10 && exit 200
}

show_loading_animation &
# 设置 MySQL 密码
Mysql_Pass=Admin@123
IP=`nmcli | grep inet4 | awk '{print$2}' | awk -F '/' '{print$1}'`
# 定义 systemctl 命令
start="systemctl start"
restart="systemctl restart"
enable="systemctl enabled"

# 定义 yum 命令
reinstall="yum reinstall -y"
install="yum install -y"

# 检查是否需要更新 yum 源和安装 epel-release
ls /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo &>/dev/null
if [ ! $? -eq 0 ]; then
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
    $install epel-release
    yum clean all && yum makecache
    yum update -y
fi

# 删除原有的 httpd.conf 和 php.ini 文件
ls /etc/httpd/conf/httpd.conf /etc/php.ini &> /dev/null
if [  $? -eq 0 ]; then
rm -rf /etc/httpd/conf/httpd.conf
rm -rf /etc/php.ini
$reinstall httpd
$reinstall php php-cli php-fpm php-mysqlnd php-zip php-gd php-mcrypt php-mbstring php-xml php-pear \
php-bcmath php-redis php-memcached php-ldap php-intl php-pecl-imagick php-pecl-swoole php-opcache
else
$install httpd
$install php php-cli php-fpm php-mysqlnd php-zip php-gd php-mcrypt php-mbstring php-xml php-pear \
php-bcmath php-redis php-memcached php-ldap php-intl php-pecl-imagick php-pecl-swoole php-opcache
fi

echo "软件包安装"
pkgs=( bash-completion vim wget unzip mariadb-server mariadb ) # 要安装的软件包列表
max_concurrent=3  # 同时进行的最大安装数量
count=0           # 当前正在运行的安装进程的数量

for pkg in "${pkgs[@]}"; do
    # 检查当前运行的安装进程数量是否达到最大值
    while [ $count -ge $max_concurrent ]; do
        sleep 1   # 如果达到最大值,则等待一秒钟再进行检查
        count=$(pgrep yum | wc -l)  # 更新正在运行的进程数
    done

    # 安装当前软件包并将其放入后台运行
    yum -y install "$pkg" &
    ((count++))
done

echo "等待所有安装进程结束"
wait

$restart firewalld
setenforce 0
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --reload

# 配置 Apache
rm -rf /etc/httpd/conf.d/welcome.conf &>/dev/null

echo  "启动 MariaDB 并设置密码"
$start mariadb
mysqladmin -uroot password "$Mysql_Pass"

# 创建数据库
#mysql -uroot -p"$Mysql_Pass" -e "create database kod_box default character set utf8;"

# 配置 PHP
PHP_INI=/etc/php.ini
PHP_FPM=/etc/php-fpm.d/www.conf
 sed -i \
   -e "s/max_execution_time = 30/max_execution_time = 3600/g" \
   -e "s/max_input_time = 60/max_input_time = 3600/g" \
   -e "s/memory_limit = 128M/memory_limit = 512M/g" \
   -e "s/post_max_size = 8M/post_max_size = 512M/g" \
   -e "s/upload_max_filesize = 2M/upload_max_filesize = 512M/g" \
   ${PHP_INI}
 sed -i \
   -e "s/pm.max_children = 50/pm.max_children = 100/g" \
   -e "s/pm.start_servers = 5/pm.start_servers = 10/g" \
   -e "s/pm.min_spare_servers = 5/pm.min_spare_servers = 10/g" \
   -e "s/pm.max_spare_servers = 35/pm.max_spare_servers = 50/g" \
   -e "s/;pm.max_requests = 500/pm.max_requests = 500/g" \
   -e "s/user = apache/user = nginx/g" \
   -e "s/group = apache/group = nginx/g" \
   -e "s/;listen.mode = 0660/listen.mode = 0666/g" \
   -e "s/;listen.owner = nobody/listen.owner = nginx/g" \
   -e "s/;listen.group = nobody/listen.group = nginx/g" \
   -e "s/listen = 127.0.0.1:9000/listen = \/var\/run\/php-fpm.sock/g" \
   ${PHP_FPM}
$restart php-fpm
echo  "安装和配置 kodbox"
rm -rf /var/www/html/index.html &>/dev/null
wget -O kodbox.zip https://static.kodcloud.com/update/download/kodbox.1.43.zip --no-check-certificate

mkdir -p /var/www/kodbox && rm -rf /var/www/kodbox/*
mv kodbox.zip /var/www/kodbox/
unzip /var/www/kodbox/kodbox.zip -d /var/www/kodbox/
rm -rf /var/www/kodbox/kodbox.zip
chmod -R 777 /var/www/kodbox
sed -ri 's#DocumentRoot "/var/www/html"#DocumentRoot "/var/www/kodbox"#' /etc/httpd/conf/httpd.conf
cat >>/etc/httpd/conf/httpd.conf <<-EOF
<Directory "/var/www/kodbox">
AllowOverride All
Require all granted
</Directory>
EOF

echo "启用服务"
$enable mariadb php-fpm httpd firewalld
$restart httpd php-fpm
sleep 1
echo "脚本执行完毕!恭喜你安装成功,你的数据库密码是$Mysql_Pass,可访问以下地址进行下一步配置"
for ip in $IP
do
echo "访问地址:http://$ip"
done
#loading_pid=$!

# 模拟耗时操作
#sleep 3

# 结束加载动画
#kill $loading_pid >/dev/null 2>&1


posted @ 2023-09-06 14:27  云中醉  阅读(50)  评论(0)    收藏  举报