CentOS7 coding compile and install or uninstall http2.4.25 a key script

To be perfect

CentOS 7 test

Haha

#!/bin/bash
#**************************************************************
#Author:                     哈啰
#QQ:                         599503252
#Date:                       2019-08-08
#FileName:                   install_httpd.sh
#URL:                        https://blog.51cto.com/14012942
#Description:                The test script
#Copyright (C):              2019 Copyright ©  站点名称  版权所有
#************************************************************
#set -e
RED="\033[0;31m"
GREEN="\033[0;32m"
NO_COLOR="\033[0m"
PREFIX=/apps/httpd24
SYSCONFDIR=/etc/httpd
SRC=/usr/src
FLAG=$1
CPUS=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
CORE=`cat /proc/cpuinfo| grep "cpu cores"| uniq | awk '{print $4}'`
J=$((${CPUS}*${CORE}))

# 判断是不是root
judge_root() {
    [ $(id -u) != "0" ] && { echo -e "${RED}Error:${NO_COLOR} You must be root to run this script."; exit 1; }   
}


# download 
download_source() {
    cd
    yum install wget -y
    #wget http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.bz2
    # wget https://ftp.osuosl.org/pub/blfs/conglomeration/httpd/httpd-2.4.25.tar.bz2
    wget https://ftp.bit.nl/apache/httpd-2.4.25.tar.bz2
    if [ ! "$?" -eq 0 ];then
        echo "download failed!"
        exit 1
    fi
}

# install
install() {
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum install gcc openssl-devel pcre-devel apr-devel apr-util-devel libnghttp2-devel ncurses-devel  lbzip2  bzip2 -y
    tar xf httpd-2.4.25.tar.bz2 -C ${SRC}/
    cd ${SRC}/httpd-2.4.25
    ./configure \
    --prefix=${PREFIX} \
    --sysconfdir=${SYSCONFDIR} \
    --enable-http2 \
    --disable-auth-basic \
    --enable-ssl \
    --enable-so
    make -j ${J}
    make install
    echo "PATH=${PREFIX}/bin:$PATH" >> /etc/profile.d/env.sh
    source /etc/profile.d/env.sh
}

# test_web
test_web() {
    apachectl start
    ss -ltn | grep -q :80
    [ "$?" -eq 0 ] && echo -e "${GREEN}May be web server is ok! \n If not ok,please check selinux and firewalld status.${NO_COLOR}" || \
        echo -e "${RED}ERROR,Please check the web server.${NO_COLOR}"
}

remove_httpd() {
    source /etc/profile.d/env.sh
    apachectl stop
    rm -rf ${PREFIX} ${SYSCONFDIR} ${SRC}/httpd-2.4.25
    sed -i '/^PATH/d' /etc/profile.d/env.sh
}

judge_uninstall(){
if [ "$FLAG" = "uninstall" ];then
    remove_httpd
    exit 0
fi
}

main() {
    judge_uninstall
    judge_root
    download_source
    install
    test_web
}

main

Guess you like

Origin www.cnblogs.com/uscWIFI/p/11322571.html