您的位置:首页 > 运维架构 > Apache

自动部署Apache(编译安装)

2020-07-23 00:44 911 查看

要求:源码包已经上传至/opt/apache目录下面(wget太慢了,只好上传,网络好的可以修改脚本成wget),现在需要自动安装Apache,并且配置一个虚拟主机:tansk.test01.com

[root@localhost ~]# cat auto_install_apache.sh
#!/bin/bash

APACHE_P="/opt/apache/"
APR_T="/usr/local/apr/"
APRUTIL_T="/usr/local/apr-util/"
PCRE_T="/usr/local/pcre/"
APACHE_T="/usr/local/apache2.4/"
function apache_evn(){
yum install "Development Tools" "Development Libraries" gcc gcc-c++ openssl-devel  expat-devel*  libxml2-devel  -y
chmod 755 ${APACHE_P}*
clear
}

function install_apr(){
rm -rf ${APR_T}
mkdir -p ${APR_T}
tar -zxvf ${APACHE_P}`ls ${APACHE_P}|grep apr|grep -v util`  -C ${APR_T}
declare -i n=`cat /proc/cpuinfo| grep "physical id"|sort|wc -l`
cd ${APR_T}`ls ${APR_T}`
./configure --prefix=${APR_T}
make -j ${n}
if [ $? -eq 0 ]; then
make install
clear
echo "apr安装完成!"
else
echo "apr安装失败,请检查安装日志"
fi
}

function install_apr-util(){
rm -rf ${APRUTIL_T}
mkdir -p ${APRUTIL_T}
tar -zxvf ${APACHE_P}`ls ${APACHE_P}|grep apr|grep  util`  -C ${APRUTIL_T}
declare -i n=`cat /proc/cpuinfo| grep "physical id"|sort|wc -l`
cd ${APRUTIL_T}`ls ${APRUTIL_T}`
./configure --prefix=${APRUTIL_T}  --with-apr=${APR_T}
make -j ${n}
if [ $? -eq 0 ]; then
make install
clear
echo "apr-util安装完成!"
else
echo "apr-util安装失败,请检查安装日志"
fi
}

function install_pcre(){
rm -rf ${PCRE_T}
mkdir -p ${PCRE_T}
tar -zxvf ${APACHE_P}`ls ${APACHE_P}|grep pcre`  -C ${PCRE_T}
declare -i n=`cat /proc/cpuinfo| grep "physical id"|sort|wc -l`
cd ${PCRE_T}`ls ${PCRE_T}`
./configure --prefix=${PCRE_T}
make -j ${n}
if [ $? -eq 0 ]; then
make install
clear
echo "pcre安装完成!"
else
echo "pcre安装失败,请检查安装日志"
fi
}

function install_apache(){
rm -rf ${APACHE_T}
mkdir -p ${APACHE_T}
tar -zxvf ${APACHE_P}`ls ${APACHE_P}|grep httpd`  -C ${APACHE_T}
declare -i n=`cat /proc/cpuinfo| grep "physical id"|sort|wc -l`
cd ${APACHE_T}`ls ${APACHE_T}`
./configure  \
--prefix=${APACHE_T} \
--enable-so \
--enable-rewrite \
--enable-ssl \
--with-pcre=${PCRE_T} \
--with-apr=${APR_T} \
--with-apr-util=${APRUTIL_T} \
--enable-modules=most \
--enable-mpms-shared=all

if [ $? -eq 0 ];then
make -j ${n}
if [ $? -eq 0 ]; then
make install
clear
cp ${APACHE_T}bin/apachectl  /etc/init.d/apache2.4
sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' ${APACHE_T}conf/httpd.conf
echo "apache安装完成!"
else
echo "apache安装失败,请检查安装日志"
fi
else
echo "预编译出错"
fi
}

function auto_install_all(){
apache_evn
install_apr
install_apr-util
install_pcre
install_apache
}

function  startup(){
service apache2.4 stop >/dev/null
service apache2.4 start
if [ $? -eq 0 ]; then
echo ""
echo "Apache启动成功"
echo ""
else
echo ""
echo "Apache启动失败"
echo ""
fi
}

function virtualhost(){
cd ${APACHE_T}conf
IP=`ifconfig ens32|sed -n '2p'|awk '{print $2}'|xargs`
rm -rf ${APACHE_T}conf/confd
mkdir -p ${APACHE_T}conf/confd
sed -i '/Include conf\/confd\/\*.conf/d' httpd.conf
echo "Include conf/confd/*.conf" >>httpd.conf
cd confd
rm -rf test01.conf >/dev/null
cat >test01.conf<<EOF
<VirtualHost *:80>
ServerName tansk.test01.com
DocumentRoot /var/www/html
</VirtualHost>

<Directory "/var/www/html">
AllowOverride None
Require all granted
</Directory>
EOF

cat>/etc/hosts<<EOF
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
EOF

rm -rf /var/www/html/ </dev/null
mkdir -p /var/www/html/
echo "test01" >>/var/www/html/index.html
echo "${IP} tansk.test01.com" >>/etc/hosts
startup
echo ""
echo "访问虚拟主机(curl tansk.test01.com):"
echo ""
curl tansk.test01.com
echo ""
}
while true
do
echo "请选择需要安装的软件(按q退出安装界面):"
cat <<end
1)环境准备
2)apr安装
3)apr-util安装
4)pcre安装
5)apache安装
6)全自动安装
7)启动Apache
8)配置一个虚拟主机
q)exit
end
read -p "请选择:" sl
case $sl in
1)
apache_evn
;;
2)
install_apr
;;

3)
install_apr-util
;;
4)
install_pcre
;;
5)
install_apache
;;
6)
auto_install_all
;;
7)
startup
;;
8)
virtualhost
;;
q)
exit
;;
*)
echo "输入错误!请重新输入"
continue
;;
esac
done
[root@localhost ~]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: