标签:like -o daemon mod which tps null led and
此安装脚本中涉及的服务启动脚本需要单独编写
#!/bin/bash
# *****************************************************
# author : shchangming
# date : 2018-06-06
# QQ : 414945814
# Description: this script is to install http one shoot
# *****************************************************
CENTOS_VER=`egrep -wo ‘[0-9]+‘ /etc/centos-release | head -n 1`
httpd_list() {
echo "
which httpd version would you like to install:
**********************************************
httpd-2.2.18
httpd-2.2.20
httpd-2.2.26
httpd-2.4.37
or you can input other version
quit | q
**********************************************
"
}
BASE_DIR="/web"
check_pre() {
if [ -d ${BASE_DIR}/${1} ];then
echo "${1} has been installed!"
exit
fi
}
change_yum() {
mkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/old
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-${CENTOS_VER}.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-${CENTOS_VER}.repo
}
env_pre() {
### 安装其他必要的依赖
yum clean all
yum groupinstall "Development Tools" -y
DEP_LIST="gcc glibc apr-devel apr-util-devel pcre-devel openssl-devel expat-devel make"
for dep in $DEP_LIST;do
rpm -q "${dep}" &> /dev/null || yum install $dep -y
done
}
get_http_package() {
HTTP_VER=$1
[ -f ${HTTP_VER}.tar.bz2 ] || wget -t 5 -w 10 https://archive.apache.org/dist/httpd/${HTTP_VER}.tar.bz2
tar xf ${HTTP_VER}.tar.bz2 &>/dev/null || exit
}
centos6_install_httpd_24() {
INSTALL_DIR="$1"
[ ! -d ${BASE_DIR} ] && mkdir -p ${BASE_DIR}
./configure --prefix=${BASE_DIR}/${INSTALL_DIR} --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork && make -j 4 && make install && ln -s ${INSTALL_DIR} ${BASE_DIR}/httpd
id apache || useradd -r -s /sbin/nologin apache
cp ${BASE_DIR}/httpd/conf/httpd.conf{,.bak}
sed -ri "/^(User|Group)/s/daemon/apache/" ${BASE_DIR}/httpd/conf/httpd.conf
sed -ri "/^#ServerName/s/^#//" ${BASE_DIR}/httpd/conf/httpd.conf
}
centos6_or_7_install_httpd_22_or_24() {
INSTALL_DIR="$1"
[ ! -d ${BASE_DIR} ] && mkdir -p ${BASE_DIR}
./configure --prefix=${BASE_DIR}/${INSTALL_DIR} --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork && make -j 4 && make install && ln -s ${INSTALL_DIR} ${BASE_DIR}/httpd
id apache || useradd -r -s /sbin/nologin apache
cp ${BASE_DIR}/httpd/conf/httpd.conf{,.bak}
sed -ri "/^(User|Group)/s/daemon/apache/" ${BASE_DIR}/httpd/conf/httpd.conf
sed -ri "/^#ServerName/s/^#//" ${BASE_DIR}/httpd/conf/httpd.conf
}
main() {
httpd_list
read -p "please select version:" http_version
case "$1" in
6)
case "$http_version" in
httpd-2.4.[2-3][6-7])
check_pre $http_version
change_yum
env_pre
get_http_package $http_version
APR_DEPS="apr-1.6.5 apr-util-1.6.1"
for apr_dep in ${APR_DEPS};do
[ -f ${apr_dep}.tar.bz2 ] || wget -t 5 -w 10 http://mirrors.tuna.tsinghua.edu.cn/apache/apr/${apr_dep}.tar.bz2
tar xf ${apr_dep}.tar.bz2 &>/dev/null
if [ $? -ne 0 ];then
echo "${apr_dep}.tar.bz2 download failed";exit
fi
done
cp -av apr-1.6.5 httpd-2.4.37/srclib/apr
cp -av apr-util-1.6.1 httpd-2.4.37/srclib/apr-util
cd $http_version
centos6_install_httpd_24 $http_version
echo export PATH=${BASE_DIR}/httpd/bin:‘$PATH‘ > /etc/profile.d/httpd24.sh
. /etc/profile.d/httpd24.sh
grep "MANPATH ${BASE_DIR}/httpd/man" /etc/man.config || echo "MANPATH ${BASE_DIR}/httpd/man" >> /etc/man.config
httpd -t && httpd
### 自定义启动脚本 /etc/rc.d/init.d/httpd24 (参考httpd-2.2的服务脚本)
if [ -f ${BASE_DIR}/init.d/httpd24 ];then
chmod +x ${BASE_DIR}/init.d/httpd24
chkconfig --add httpd24 ;chkconfig --list httpd24;chkconfig httpd24 on;chkconfig --list httpd24
fi
;;
httpd-2.2.[1-2-3][0-1-2-3-4-5-6-7-8-9])
check_pre $http_version
change_yum
env_pre
get_http_package $http_version && cd $http_version
centos6_or_7_install_httpd_22_or_24 $http_version
echo export PATH=${BASE_DIR}/httpd/bin:‘$PATH‘ > /etc/profile.d/httpd22.sh
. /etc/profile.d/httpd22.sh
grep "MANPATH ${BASE_DIR}/httpd/man" /etc/man.config || echo "MANPATH ${BASE_DIR}/httpd/man" >> /etc/man.config
httpd -t && httpd
### 自定义启动脚本 /etc/rc.d/init.d/httpd22 (参考httpd-2.2的服务脚本)
if [ -f ${BASE_DIR}/init.d/httpd22 ];then
chmod +x ${BASE_DIR}/init.d/httpd22
chkconfig --add httpd22 ;chkconfig --list httpd22;chkconfig httpd22 on;chkconfig --list httpd22
fi
;;
quit|q)
echo "Bye" && exit
;;
*)
echo "do not sport this version" && exit
;;
esac
;;
7)
case "$http_version" in
httpd-2.2.[2][6-7-8-9]|httpd-2.4.[1-2-3-4][0-1-2-3-4-5-6-7-8-9])
check_pre $http_version
change_yum
env_pre
get_http_package $http_version && cd $http_version
centos6_or_7_install_httpd_22_or_24 $http_version
echo export PATH=${BASE_DIR}/httpd/bin:‘$PATH‘ > /etc/profile.d/httpd24.sh
. /etc/profile.d/httpd24.sh
grep "MANDATORY_MANPATH ${BASE_DIR}/httpd/man" /etc/man_db.conf || echo "MANDATORY_MANPATH ${BASE_DIR}/httpd/man" >> /etc/man_db.conf
httpd -t && httpd
### 自定义启动脚本 /etc/rc.d/init.d/httpd24 (参考httpd-2.2的服务脚本)
if [ -f ${BASE_DIR}/init.d/httpd24 ];then
chmod +x ${BASE_DIR}/init.d/httpd24
chkconfig --add httpd24 ;chkconfig --list httpd24;chkconfig httpd24 on;chkconfig --list httpd24
fi
;;
quit|q)
echo "Bye" && exit
;;
*)
echo "do not sport this version" && exit
;;
esac
esac
}
main $CENTOS_VER
本文链接:https://www.cnblogs.com/shichangming/p/10153464.html
httpd 一键编译安装脚本(centos6&7_httpd2.2&2.4)
标签:like -o daemon mod which tps null led and
原文地址:https://www.cnblogs.com/shichangming/p/10153464.html