shell脚本安装httpd
[root@RHEL8 ~]# cd /opt/
[root@RHEL8 opt]# ls
apache.sh files
//下载依赖包
[root@RHEL8 opt]# cd files/
[root@RHEL8 files]# wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
[root@RHEL8 files]# wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz
[root@RHEL8 files]# wget https://downloads.apache.org/httpd/httpd-2.4.57.tar.gz
[root@RHEL8 files]# tar xf apr-1.7.4.tar.gz //解压
[root@RHEL8 files]# cd apr-1.7.4
[root@RHEL8 apr-1.7.4]# vim configure //进入之后搜索cfgfile快速定位
cfgfile="${ofile}T"
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
# $RM "$cfgfile" 删除此行
//将apr-1.7.4改好的configure重新压缩成源文件同名的压缩包
[root@RHEL8 files]# ls
apr-1.7.4.tar.gz httpd-2.4.57.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz
[root@RHEL8 files]# rm -rf apr-1.7.4.tar.gz
[root@RHEL8 files]# tar zcf apr-1.7.4.tar.gz apr-1.7.4
[root@RHEL8 files]# ls
apr-1.7.4.tar.gz httpd-2.4.57.tar.gz
apr-1.7.4 apr-util-1.6.3.tar.gz
[root@RHEL8 files]# rm -rf apr-1.7.4
编写脚本
[root@RHEL8 opt]# vim apache.sh
#!/bin/bash
# 安装所需软件包和工具
yum groups mark install 'Development Tools'
yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make
# 创建Apache用户和用户组
groupadd -r apache
useradd -r -M -s /sbin/nologin -g apache apache
# 切换到安装文件所在目录
cd /opt/files
# 解压Apache相关文件
tar xf apr-1.7.4.tar.gz
tar xf apr-util-1.6.3.tar.gz
tar xf httpd-2.4.57.tar.gz && \
# 安装apr
cd apr-1.7.4
./configure --prefix=/usr/local/apr && \
make && make install && \
# 安装apr-util
cd /opt/files/apr-util-1.6.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && \
make && make install && \
# 安装Apache
cd /opt/files/httpd-2.4.57
./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork && \
make && make install && \
# 配置环境变量
echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh
source /etc/profile.d/httpd.sh
# 创建符号链接和配置
ln -s /usr/local/apache/include /usr/include/httpd
echo 'MANPATH /usr/local/apache/man' >> /etc/man.config
sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf //取消ServerName前面的注释
开启apache
[root@RHEL8 opt]# bash
[root@RHEL8 opt]# apachectl start
[root@RHEL8 opt]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*