#!/bin/bash
echo "1.输入参数1为安装nginx"
echo "2.输入参数2为升级或降级nginx"
echo "3.输入参数3为卸载nginx"
read -p "请输入您选择的数字: " input
NUM1=$input
if [ "$NUM1" == 1 ];then
echo 您输入的数字为$NUM1,为您执行安装nginx
read -p "请输入您要安装的版本号: " input
NGX_VER=$input
NGX_SRC="/usr/src/"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
CHECK_NUM=$(rpm -qa|grep -E "tar|gcc|pcre-devel|zlib-devel|make"|wc -l)
if [ $CHECK_NUM -lt 9 ];then
#提前解决Nginx编译所需依赖环境、库文件
yum install -y gcc tar make pcre-devel zlib-devel openssl-devel
else
echo "依赖和库文件已经存在,跳过安装,进行下一步"
fi
if [ ! -d $NGX_DIR ];then
#从Nginx官网下载软件包;
wget -c $NGX_URL/$NGX_SOFT -P $NGX_SRC
#Cd切换至/usr/src/;
cd $NGX_SRC
ls -l $NGX_SOFT
#通过Tar工具对其解压;
tar -xzvf $NGX_SOFT
#Cd切换至Nginx源代码目录;
cd nginx-$NGX_VER/
#创建www用户和组,解决依赖环境、库文件;
useradd -s /sbin/nologin www -M
#预编译;
./configure --prefix=$NGX_DIR/ $NGX_ARGS
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx软件服务是否部署成功;
ls -l $NGX_DIR/
#启动Nginx服务进程;
$NGX_DIR/sbin/nginx
#查看Nginx进程状态;
ps -ef|grep nginx
#关闭Firewalld防火墙;
systemctl stop firewalld.service
else
echo "Nginx WEB已经安装,请检查并退出执行"
ls -ld $NGX_DIR
ls -l $NGX_DIR
fi
else
if [ "$NUM1" == 2 ];then
echo 您输入的数字为$NUM1,为您执行升级或降级操作
read -p "请输入您要安装的版本号: " input
NGX_VER=$input
NGX_SRC="/usr/src/"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
CHECK_NUM=$(rpm -qa|grep -E "tar|gcc|pcre-devel|zlib-devel|make"|wc -l)
if [ $CHECK_NUM -lt 9 ];then
#提前解决Nginx编译所需依赖环境、库文件
yum install -y gcc tar make pcre-devel zlib-devel openssl-devel
else
echo "依赖和库文件已经存在,跳过安装,进行下一步"
fi
#从Nginx官网下载软件包;
wget -c $NGX_URL/$NGX_SOFT -P $NGX_SRC
#Cd切换至/usr/src/;
cd $NGX_SRC
ls -l $NGX_SOFT
#通过Tar工具对其解压;
tar -xzvf $NGX_SOFT
#Cd切换至Nginx源代码目录;
cd nginx-$NGX_VER/
#创建www用户和组,解决依赖环境、库文件;
useradd -s /sbin/nologin www -M
#预编译;
./configure --prefix=$NGX_DIR/ $NGX_ARGS
#编译;
make -j4
#将生成的nginx二进制文件覆盖其原文件
mv $NGX_DIR/sbin/nginx $NGX_DIR/sbin/nginx.old
\cp objs/nginx $NGX_DIR/sbin/nginx
#重启Nginx服务进程;
\cd $NGX_DIR/sbin/
\.\/nginx -s reload
echo 您已重新启动nginx,完成升级或降级操作
#查看Nginx进程状态;
ps -ef|grep nginx
#关闭Firewalld防火墙;
systemctl stop firewalld.service
else if [ "$NUM1" == 3 ];then
echo 您输入的数字为$NUM1,为您执行卸载操作
#停止Nginx进程
cd $NGX_DIR/sbin/
\.\/nginx -s stop
pkill nginx
rm -rf $NGX_DIR
#find / -name "nginx*" -exec rm -rf {} \;
else
echo 您输入的数字为$NUM1,没有该操作,请检查后重新操作
fi
fi
fi
if实现源码安装、升级、卸载Nginx
于 2024-08-22 11:07:52 首次发布