一键编译安装httpd脚本
相关思路
执行脚本时可以跟上$1的位置变量来决定下载版本,不加$1脚本会无法执行,也可更改脚本变量version为固定数
编译安装会需要cpu,可写成变量
- 写成函数,以便后续管理及更改
- 关闭SELinux,关闭防火墙
- 下载相关依赖包(因已经手动编译过,因此知道所需包)
- wget下载及解压
- 编译安装:./configure > make > make install
- 建立软链接
- 创建账号及组
- 启动httpd服务
- 通过浏览器验证
[root@rocky8 ~]#vim a.sh
#!/bin/bash
version=$1
cpu=`lscpu | sed -rn '/^CPU\(s\)/s/.* ([0-9]+)/\1/p'`
#某些未知原因,导致本人配置的yum源无法下载gcc,所以在此先用原有源下载,望见谅
cd /etc/yum.repos.d
mv base.repo base.repo.bak
mv /etc/yum.repos.d/backup/*.repo .
yum -y install gcc
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
mv base.repo.bak base.repo
#关闭SELinux
disable_selinux () {
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
}
#关闭防火墙
disable_firewall () {
systemctl disable --now firewalld
}
#下载相关依赖包
yum_install() {
yum -y install apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config-125-1.el8.noarch
}
#下载及解压包
wget_tar() {
wget https://dlcdn.apache.org/httpd/httpd-$version.tar.bz2 || { echo download faild ; exit; }
tar xvf httpd-$version.tar.bz2
cd httpd-$version/
}
#编译安装
make_install() {
./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
make -j $cpu && make install
}
#建立软链接
ln_httpd() {
echo 'PATH=/apps/httpd/bin/:$PATH' > /etc/profile.d/httpd.sh
. /etc/profile.d/httpd.sh
}
#创建账号及组
user_group() {
groupadd -r -g 88 apache
useradd -r -u 88 -g apache -s /sbin/nologin -d /var/www/ apache
sed -i -e '/^User/c User apache' -e '/^Group/c Group apache' /etc/httpd/httpd.conf
}
#启动httpd服务
systemctl_httpd() {
apachectl start
}
disable_selinux
disable_firewall
yum_install
wget_tar
make_install
ln_httpd
user_group
systemctl_httpd
echo "编译安装httpd已完成"
#加权限并执行
chmod +x a.sh
bash a.sh 2.4.57 指定版本号
浏览器输入ip地址进行验证