#!/bin/bash # # 注释说明 function script_mini::run(){ local SCRIPT_NAME=${BASH_SOURCE[0]##*/} local SCRIPT_PATH=$(cd ${BASH_SOURCE[0]%/*} 2>/dev/null 1>/dev/null; pwd) local LIGHTTPD_MINI_PATH=$(cd ${SCRIPT_PATH}/..; pwd) echo "LIGHTTPD_MINI_PATH=${LIGHTTPD_MINI_PATH}" function lighttpd_mini::build(){ echo "LIGHTTPD_MINI_PATH=${LIGHTTPD_MINI_PATH}" local WORK_PATH=${LIGHTTPD_MINI_PATH}/.workspace function wget_tar(){ [[ ! " ${@} " =~ " --quite " ]] && local isinfo="1>&2" || local isinfo="1>/dev/null 2>/dev/null" [[ ! " ${@} " =~ " --cont " ]] && eval wget -N -P $1/resource $2 ${isinfo} [[ ! " ${@} " =~ " --cont " ]] && eval tar -zxvf ${1}/resource/${2##*/} -C ${1} ${isinfo} echo ${1}/${2##*/} | sed -e 's/\.tar.gz//' } function lighttpd_mini::build::zlib(){ local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3 cd $(wget_tar ${BUILD_PATH} http://www.zlib.net/zlib-1.2.13.tar.gz) ./configure --prefix=${INSTL_PATH} --static make -j; make install -j } function lighttpd_mini::build::bzip2(){ local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3 cd $(wget_tar ${BUILD_PATH} https://jaist.dl.sourceforge.net/project/bzip2/bzip2-1.0.6.tar.gz) make install PREFIX=${INSTL_PATH} -j } function lighttpd_mini::build::pcre(){ local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3 cd $(wget_tar ${BUILD_PATH} https://netix.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz) ./configure --prefix=${INSTL_PATH} CC=gcc CXX=g++ \ --enable-static=yse --enable-shared=no make -j; make install -j; } function lighttpd_mini::build::openssl(){ local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3 cd $(wget_tar ${BUILD_PATH} https://www.openssl.org/source/openssl-1.1.1.tar.gz) ./config --prefix=${INSTL_PATH} no-shared --release make -j; make install_sw -j } function lighttpd_mini::build::lighttpd(){ local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3 cd $(wget_tar ${BUILD_PATH} http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.39.tar.gz) ./configure --prefix=${INSTL_PATH} \ --enable-static=yse --enable-shared=no \ PCRECONFIG=${D3th_PATH}/bin/pcre-config \ PCRE_LIB=${D3th_PATH}/lib/libpcre.a \ SSL_LIB=${D3th_PATH}/lib/libssl.a \ Z_LIB=${D3th_PATH}/lib/libz.a \ BZ_LIB=${D3th_PATH}/lib/libbz2.a make -j; make install -j cp -rfd ./doc/config ${INSTL_PATH} } function lighttpd_mini::build::php(){ local BUILD_PATH=$1 && local INSTL_PATH=$2 && local D3th_PATH=$3 cd $(wget_tar ${BUILD_PATH} http://cn2.php.net/distributions/php-7.3.29.tar.gz) ./configure --prefix=${INSTL_PATH} \ --enable-fpm \ --disable-phpdbg \ --with-zlib-dir=${D3th_PATH} \ --with-bz2-dir=${D3th_PATH} \ --with-openssl-dir=${D3th_PATH} make -j; make install -j } lighttpd_mini::build::zlib "${WORK_PATH}/build" "${WORK_PATH}/3th" lighttpd_mini::build::bzip2 "${WORK_PATH}/build" "${WORK_PATH}/3th" lighttpd_mini::build::pcre "${WORK_PATH}/build" "${WORK_PATH}/3th" lighttpd_mini::build::openssl "${WORK_PATH}/build" "${WORK_PATH}/3th" lighttpd_mini::build::lighttpd "${WORK_PATH}/build" "${WORK_PATH}/lighttpd" "${WORK_PATH}/3th" lighttpd_mini::build::php "${WORK_PATH}/build" "${WORK_PATH}/php" "${WORK_PATH}/3th" strip ${WORK_PATH}/lighttpd/*/* ${WORK_PATH}/lighttpd/*/*/* 2>/dev/null strip ${WORK_PATH}/php/*/* ${WORK_PATH}/php/*/*/* 2>/dev/null } lighttpd_mini::build return } script_mini::run $@