shell指令碼一鍵安裝nginx

夏天公子發表於2018-12-05

依賴包安裝包放在一起, 直接執行這個指令碼就行。

#!/bin/bash
#------------------------------------------------------------------------------------------------------------------#
#------------------------------------------------------------------------------------------------------------------#
#|                                            chenglee public nginx                                               |#
#|                                            version: nginx-1.9.10                                               |#
#|                                            version: openssl-1.1.0f                                             |#
#|                                            version: pcre-8.40                                                  |#
#|                                            version: zlib-1.2.11                                                |#
#|                                               2018.12.04                                                       |# 
#------------------------------------------------------------------------------------------------------------------#
#|          Some people die at the age of 25 and don`t bury themselves in the earth until they are 75             |#
#------------------------------------------------------------------------------------------------------------------#
#|                      $$$$ $$   $$ $$$$$$ $$    $$   $$$$$$          $$     $$$$$$ $$$$$$                       |#
#|                     $$    $$   $$ $$     $$ $$ $$  $$               $$     $$     $$                           |#
#|                    $$     $$$$$$$ $$$$$  $$  $$ $ $$  $$$$$$        $$     $$$$$  $$$$$                        |#
#|                     $$    $$   $$ $$     $$   $ $  $$     $$        $$     $$     $$                           |#
#|                      $$$$ $$   $$ $$$$$$ $$    $$   $$$$$ $$        $$$$$$ $$$$$$ $$$$$$                       |#
#------------------------------------------------------------------------------------------------------------------#
K_NGINX="nginx-1.9.10.tar.gz"
K_PCRE="pcre-8.40.tar.gz"
K_OPENSSL="openssl-1.1.0f.tar.gz"
K_ZLIB="zlib-1.2.11.tar.gz"
PRENAME="nginx"
installpath=$(cd `dirname $0`; pwd)

function environment(){
    echo "-----------------------------------------------------------------------"
    echo "------------------------  check gcc  ----------------------------------"
    echo "-----------------------------------------------------------------------"
    GCCBIN=`which gcc`
    GCCV=$(echo $GCCBIN | grep "gcc")
    if [[ "$GCCV" != "" ]]
    then
        echo "gcc was installed "
    else
        echo "install gcc"
        yum install gcc gcc-c++ -y >/dev/null 2>&1
    fi 
}

function initialize(){
    installpath=$(cd `dirname $0`; pwd)
    cd ${installpath}
    cd ${PRENAME}/lib/openssl* && OPENSSLPATH=`pwd`
    cd ${installpath}
    cd ${PRENAME}/lib/pcre* && PCREPATH=`pwd`
    cd ${installpath}
    cd ${PRENAME}/lib/zlib* && ZLIBPATH=`pwd`
    cd ${installpath}
}

function installssl(){
    echo "-----------------------------------------------------------------------"
    echo "----------------------  install openssl  ------------------------------"
    echo "-----------------------------------------------------------------------"
    mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}
    #openss
    tar -zxvf ${K_OPENSSL} -C ${PRENAME}/lib >/dev/null 2>&1
    cd ${PRENAME}/lib/openssl* && OPENSSLPATH=`pwd`
    ./config --prefix=${OPENSSLPATH} >${installpath}/logs/openssl.log >/dev/null 2>&1
    if [[ $? -ne 0 ]]; then
        return 1
    else
        make && make install >${installpath}/logs/openssl.log
        if [[ $? -ne 0 ]]; then
            return 1
        fi
        return 0
    fi
}
function installpcre(){
    echo "-----------------------------------------------------------------------"
    echo "----------------------  install pcre  ---------------------------------"
    echo "-----------------------------------------------------------------------"
    #pcre
    cd ${installpath}
    tar -zxvf ${K_PCRE} -C ${PRENAME}/lib >/dev/null 2>&1
    cd ${PRENAME}/lib/pcre* && PCREPATH=`pwd`
    ./configure --prefix=${PCREPATH} >${installpath}/logs/pcre.log >/dev/null 2>&1
    if [[ $? -ne 0 ]]; then
        return 1
    else
        make && make install >${installpath}/logs/pcre.log
        if [[ $? -ne 0 ]]; then
            return 1
        fi
        return 0
    fi
}
function installzlib(){
    echo "-----------------------------------------------------------------------"
    echo "----------------------  install zlib  ---------------------------------"
    echo "-----------------------------------------------------------------------"
    #zlib
    cd ${installpath}
    tar -zxvf ${K_ZLIB} -C ${PRENAME}/lib >/dev/null 2>&1
    cd ${PRENAME}/lib/zlib* && ZLIBPATH=`pwd`
    ./configure --prefix=${ZLIBPATH} >${installpath}/logs/zlib.log >/dev/null 2>&1
    if [[ $? -ne 0 ]]; then
        return 1
    else
        make && make install >${installpath}/logs/zlib.log
        if [[ $? -ne 0 ]]; then
            return 1
        fi
        return 0
    fi
}
function installnginx(){
    echo "-----------------------------------------------------------------------"
    echo "----------------------  install nginx  --------------------------------"
    echo "-----------------------------------------------------------------------"
    #nginx
    cd ${installpath}
    initialize
    tar -zxvf ${K_NGINX} >/dev/null 2>&1
    cd nginx-* && NGINXPATH=`pwd`
    ./configure --prefix=${installpath}/${PRENAME} --with-pcre=${PCREPATH} --with-openssl=${OPENSSLPATH} --with-zlib=${ZLIBPATH}
    if [[ $? -ne 0 ]]; then
        return 1
    else
        make && make install >${installpath}/logs/nginx.log
        if [[ $? -ne 0 ]]; then
            return 1
        fi
        return 0
    fi
}

environment
installssl
installpcre
installzlib
installnginx

 

相關文章