1. 指定版本号和用户;
2. 确定安装目录;
3. 确定安装编译模块;
4. 安装相关依赖;
5. 下载源码包并解压;
6. 编译安装;
7. 文件授权及临时文件清理。
#!/bin/bash
# 用户输入的Nginx版本号
NGINX_VERSION=$1
# 传入用户
NGINX_USER="$2"
# 定义Nginx安装目录
INSTALL_DIR="/work/nginxpwd"
#定义编译安装模块,有需要请自己新增
MODULES="--with-http_ssl_module \
--with-http_realip_module \
--with-http_sub_module \
--with-stream \
--with-http_stub_status_module \
--with-stream_ssl_module"
#目录检测,没有则创建
if [ -d "$INSTALL_DIR" ]; then
echo "目录已存在..."
else
mkdir -p "$INSTALL_DIR"
echo "目录创建完成..."
fi
#用户检测,没有则创建
if ! id -u "$NGINX_USER" > /dev/null 2>&1; then
useradd $NGINX_USER
fi
# 安装相关依赖
yum -y install gcc gcc-c++ make automake autoconf pcre pcre-devel zlib zlib-devel openssl openssl-devel libtool GeoIP-devel wget
# 下载Nginx源码包
wget -O /tmp/nginx-${NGINX_VERSION}.tar.gz https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
# 解压源码包
tar -zxf /tmp/nginx-${NGINX_VERSION}.tar.gz -C /tmp/
# 进入源码目录
cd /tmp/nginx-${NGINX_VERSION}
# 配置、编译并安装Nginx
./configure --prefix=$INSTALL_DIR \
--user=$NGINX_USER \
--group=$NGINX_USER \
$MODULES \
&& make -j$(nproc) \
&& make install
# 清理临时文件
rm -rf /tmp/nginx-${NGINX_VERSION} /tmp/nginx-${NGINX_VERSION}.tar.gz
#调整目录用户权限
chown -R $NGINX_USER:$NGINX_USER $INSTALL_DIR
#安装成功的提示
echo "Nginx ${NGINX_VERSION} has been installed to ${INSTALL_DIR}"
传入版本号和用户进行安装
sh nginx_install.sh 1.24.0 test2
#安装成功
#切换到普通用户成功启动