#!/bin/bash source <(curl -f -s --connect-timeout 10 --retry 3 https://dl.acepanel.net/public.sh) if [ $? -ne 0 ]; then echo "Download public.sh failed, please check the network or try again later." exit 1 fi channel=${1} version=${2} apache_path="${setup_path}/server/apache" j=$(calculate_j) if [ ! -d "${apache_path}" ]; then error "Apache is not installed" fi # 清理旧源码 rm -rf ${apache_path}/src # 下载新源码 dl "${apache_path}" "/apache/httpd-${version}.tar.gz" cd ${apache_path} tar -zxvf httpd-${version}.tar.gz rm -f httpd-${version}.tar.gz mv httpd-${version} src cd src # 下载并解压 APR dl "${apache_path}/src/srclib" "/apache/apr-1.7.6.tar.gz" cd ${apache_path}/src/srclib tar -zxvf apr-1.7.6.tar.gz rm -f apr-1.7.6.tar.gz mv apr-1.7.6 apr # 下载并解压 APR-Util dl "${apache_path}/src/srclib" "/apache/apr-util-1.6.3.tar.gz" cd ${apache_path}/src/srclib tar -zxvf apr-util-1.6.3.tar.gz rm -f apr-util-1.6.3.tar.gz mv apr-util-1.6.3 apr-util cd ${apache_path}/src # 配置编译 ./configure --prefix=${apache_path} \ --enable-mods-shared=most \ --with-included-apr \ --enable-ssl \ --enable-http2 \ --enable-proxy \ --enable-brotli \ --enable-deflate \ --enable-rewrite \ --enable-remoteip \ --enable-lua \ --enable-dav \ --enable-dav-fs \ --enable-cache \ --enable-cache-disk \ --enable-socache-shmcb \ --enable-slotmem-shm \ --enable-watchdog \ --enable-md \ --enable-systemd if [ "$?" != "0" ]; then error "Configure failed" fi make "-j${j}" if [ "$?" != "0" ]; then error "Compilation failed" fi # 停止服务 systemctl stop apache make install if [ ! -f "${apache_path}/bin/httpd" ]; then systemctl start apache error "Installation failed" fi # 重启服务 systemctl start apache if [ "$?" != "0" ]; then error "Failed to start" fi acepanel app write apache ${channel} ${version} echo -e $HR echo "Upgrade successful" echo -e $HR