173 lines
4.6 KiB
Bash
173 lines
4.6 KiB
Bash
#!/bin/bash
|
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/opt/homebrew/bin
|
|
export PATH
|
|
|
|
# cd /Users/midoks/Desktop/mwdev/server/mdserver-web/plugins/apache && bash install.sh install 2.4
|
|
# cd /www/server/mdserver-web/plugins/apache && bash install.sh install 2.4
|
|
|
|
curPath=`pwd`
|
|
rootPath=$(dirname "$curPath")
|
|
rootPath=$(dirname "$rootPath")
|
|
serverPath=$(dirname "$rootPath")
|
|
|
|
sysName=`uname`
|
|
action=$1
|
|
type=$2
|
|
|
|
VERSION=2.4.66
|
|
apacheDir=${serverPath}/source/apache
|
|
|
|
Install_App()
|
|
{
|
|
if [ "${action}" == "install" ];then
|
|
if [ -d $serverPath/apache ];then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# ----- cpu start ------
|
|
if [ -z "${cpuCore}" ]; then
|
|
cpuCore="1"
|
|
fi
|
|
|
|
if [ -f /proc/cpuinfo ];then
|
|
cpuCore=`cat /proc/cpuinfo | grep "processor" | wc -l`
|
|
fi
|
|
|
|
MEM_INFO=$(free -m|grep Mem|awk '{printf("%.f",($2)/1024)}')
|
|
if [ "${cpuCore}" != "1" ] && [ "${MEM_INFO}" != "0" ];then
|
|
if [ "${cpuCore}" -gt "${MEM_INFO}" ];then
|
|
cpuCore="${MEM_INFO}"
|
|
fi
|
|
else
|
|
cpuCore="1"
|
|
fi
|
|
|
|
if [ "$cpuCore" -gt "2" ];then
|
|
cpuCore=`echo "$cpuCore" | awk '{printf("%.f",($1)*0.8)}'`
|
|
else
|
|
cpuCore="1"
|
|
fi
|
|
# ----- cpu end ------
|
|
|
|
mkdir -p ${apacheDir}
|
|
echo 'install script ...'
|
|
OPTIONS=''
|
|
|
|
# 安装 APR 和 APR-util
|
|
APR_VERSION=1.7.6
|
|
APR_UTIL_VERSION=1.6.3
|
|
|
|
if [ ! -f ${apacheDir}/apr-${APR_VERSION}.tar.bz2 ];then
|
|
wget --no-check-certificate -O ${apacheDir}/apr-${APR_VERSION}.tar.bz2 https://downloads.apache.org/apr/apr-${APR_VERSION}.tar.bz2 -T 3
|
|
fi
|
|
|
|
if [ ! -f ${apacheDir}/apr-util-${APR_UTIL_VERSION}.tar.bz2 ];then
|
|
wget --no-check-certificate -O ${apacheDir}/apr-util-${APR_UTIL_VERSION}.tar.bz2 https://downloads.apache.org/apr/apr-util-${APR_UTIL_VERSION}.tar.bz2 -T 3
|
|
fi
|
|
|
|
# 安装 APR
|
|
if [ ! -d ${serverPath}/apache/apr ];then
|
|
cd ${apacheDir} && tar -jxf apr-${APR_VERSION}.tar.bz2
|
|
cd ${apacheDir}/apr-${APR_VERSION} && ./configure --prefix=${serverPath}/apache/apr
|
|
make -j${cpuCore} && make install
|
|
if [ "$?" == "0" ];then
|
|
# 检查 APR 配置文件
|
|
APR_CONFIG=$(find ${serverPath}/apache/apr -name "apr-*config" | head -1)
|
|
if [ -z "$APR_CONFIG" ];then
|
|
echo "APR installation failed: apr-config not found"
|
|
exit 1
|
|
fi
|
|
echo "APR installed successfully: $APR_CONFIG"
|
|
else
|
|
echo "APR configure failed"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 安装 APR-util
|
|
if [ ! -d ${serverPath}/apache/apr-util ];then
|
|
cd ${apacheDir} && tar -jxf apr-util-${APR_UTIL_VERSION}.tar.bz2
|
|
cd ${apacheDir}/apr-util-${APR_UTIL_VERSION} && ./configure --prefix=${serverPath}/apache/apr-util --with-apr=${serverPath}/apache/apr
|
|
make -j${cpuCore} && make install
|
|
if [ "$?" == "0" ];then
|
|
# 检查 APR-util 配置文件
|
|
APU_CONFIG=$(find ${serverPath}/apache/apr-util -name "apu-*config" | head -1)
|
|
if [ -z "$APU_CONFIG" ];then
|
|
echo "APR-util installation failed: apu-config not found"
|
|
find ${serverPath}/apache/apr-util -name "apu-*config"
|
|
exit 1
|
|
fi
|
|
echo "APR-util installed successfully: $APU_CONFIG"
|
|
else
|
|
echo "APR-util configure failed"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ ! -f ${apacheDir}/httpd-${VERSION}.tar.bz2 ];then
|
|
wget --no-check-certificate -O ${apacheDir}/httpd-${VERSION}.tar.bz2 https://downloads.apache.org/httpd/httpd-${VERSION}.tar.bz2 -T 3
|
|
fi
|
|
|
|
if [ ! -d ${apacheDir}/httpd-${VERSION} ];then
|
|
cd ${apacheDir} && tar -jxf ${apacheDir}/httpd-${VERSION}.tar.bz2
|
|
fi
|
|
|
|
|
|
# 检查 APR 和 APR-util 可执行文件
|
|
APR_CONFIG=$(find ${serverPath}/apache/apr -name "apr-*config" | head -1)
|
|
APU_CONFIG=$(find ${serverPath}/apache/apr-util -name "apu-*config" | head -1)
|
|
|
|
if [ -z "$APR_CONFIG" ];then
|
|
echo "APR config not found"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$APU_CONFIG" ];then
|
|
echo "APR-util config not found"
|
|
exit 1
|
|
fi
|
|
|
|
OPTIONS="${OPTIONS} --with-apr=$APR_CONFIG"
|
|
OPTIONS="${OPTIONS} --with-apr-util=$APU_CONFIG"
|
|
|
|
# if [ "$sysName" != "Darwin" ];then
|
|
# OPTIONS="${OPTIONS} --enable-systemd"
|
|
# fi
|
|
# echo "cd ${apacheDir}/httpd-${VERSION} && ./configure --prefix=$serverPath/apache $OPTIONS"
|
|
cd ${apacheDir}/httpd-${VERSION} && ./configure \
|
|
--prefix=$serverPath/apache/httpd \
|
|
$OPTIONS
|
|
|
|
make -j${cpuCore} && make install && make clean
|
|
|
|
|
|
if [ -d ${apacheDir}/apr-${APR_VERSION} ];then
|
|
rm -rf ${apacheDir}/apr-${APR_VERSION}
|
|
fi
|
|
|
|
if [ -d ${apacheDir}/apr-util-${APR_UTIL_VERSION} ];then
|
|
rm -rf ${apacheDir}/apr-util-${APR_UTIL_VERSION}
|
|
fi
|
|
|
|
if [ -d ${apacheDir}/httpd-${APR_UTIL_VERSION} ];then
|
|
rm -rf ${apacheDir}/httpd-${APR_UTIL_VERSION}
|
|
fi
|
|
|
|
echo 'installation of apache completed'
|
|
}
|
|
|
|
Uninstall_App()
|
|
{
|
|
echo 'uninstalling apache completed'
|
|
}
|
|
|
|
action=$1
|
|
if [ "${1}" == "install" ];then
|
|
Install_App
|
|
elif [ "${1}" == "upgrade" ];then
|
|
Install_App
|
|
else
|
|
Uninstall_App
|
|
fi
|