CentOS一键编译安装httpd-2.4.46

适用 CentOS 7/8

#!/bin/bash
#
#********************************************
#Author:       jacklee
#QQ:           1227163339
#Time:         2020-10-26_23:19:24
#FileName:     httpd.sh
#Copyright:    2020 All rights reserved
#Description:   
#*********************************************
. /etc/init.d/functions

# 下载源码
[ -f httpd-2.4.46.tar.bz2 ] || wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.bz2
[ -f apr-1.7.0.tar.bz2 ] || wget https://mirror.bit.edu.cn/apache//apr/apr-1.7.0.tar.bz2
[ -f apr-util-1.6.1.tar.bz2 ] || wget https://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.bz2

# 解压
tar xvf httpd-2.4.46.tar.bz2
tar xvf apr-1.7.0.tar.bz2
tar xvf apr-util-1.6.1.tar.bz2

# 整合
mv apr-1.7.0  httpd-2.4.46/srclib/apr
mv apr-util-1.6.1  httpd-2.4.46/srclib/apr-util

# 执行configure
cd httpd-2.4.46/
./configure \
--prefix=/apps/httpd24 \
--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

# 安装依赖包
yum -y install libxml2-devel  deltarpm  expat-devel

# 开始编译
m=`lscpu | awk 'NR==4 {print $2}'`
n=`lscpu | awk 'NR==7 {print $4}'`
j=$((m*n))
make -j $j && make install && action '编译完成,开始配置' || { action '编译失败!!!' false; exit; }

sleep 3

# 用户
[ id apache ] &> /dev/null && userdel -r -f apache || useradd -r -s /sbin/nologin apache
# 指定 apache 运行
sed -ri -e 's/^(user ).*/\1apache/' -e 's/^(group ).*/\1apache/' /apps/httpd24/conf/httpd.conf

# PATH
ln -s /apps/httpd24/bin/*  /usr/bin/ &> /dev/null

# HELP
sed -i '/#MANDATORY_MANPATH/a MANDATORY_MANPATH /apps/httpd24/man' /etc/man_db.conf

# 开机自启
echo '/apps/httpd24/bin/httpd start' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

# service文件
cat > /usr/lib/systemd/system/httpd24.service << EOF
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.target nss-lookup.target
Documentation=man:httpd(8)
Documentation=man:apachectl(8)
[Service]
Type=forking
#EnvironmentFile=/etc/sysconfig/httpd
ExecStart=/apps/httpd24/bin/apachectl start
#ExecStart=/apps/httpd24/bin/httpd $OPTIONS -k start
ExecReload=/apps/httpd24/bin/apachectl graceful
#ExecReload=/apps/httpd24/bin/httpd $OPTIONS -k graceful
ExecStop=/apps/httpd24/bin/apachectl stop
KillSignal=SIGCONT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

# servername
sed -ri 's/#(ServerName www.example.com:80)/\1/' /apps/httpd24/conf/httpd.conf

# 语法
httpd -t

# 启动
systemctl daemon-reload
systemctl enable --now httpd24	# 注意与 service文件同名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值