一、基于SHELL编程开发Nginx一键部署脚本(Make源码方式),编程思路如下
从Nginx官网下载软件包nginx-1.24.0.tar.gz;
通过Tar工具对其解压,tar -xzvf nginx-1.24.0.tar.gz;
cd切换至nginx-1.24.0/源代码目录;
预编译,./configure;
编译,make;
安装,make install;
启动Nginx服务,/usr/local/nginx/sbin/nginx;
查看其进程,ps -ef|grep -aiE nginx;
Firewalld防火墙对外开放80端口。
二、基于SHELL编程开发Nginx一键部署脚本(v1版本)
#!/bin/bash
#2024年5月9日10:39:33
#auto install nginx web.
#by author www.jfedu.net
####################
#提前解决编译时所需的依赖环境、库文件;
yum install -y wget gzip gcc tar make
yum install -y pcre pcre-devel zlib-devel
#下载Nginx软件包;
wget -c http://nginx.org/download/nginx-1.24.0.tar.gz -P /usr/src/
#Cd切换/usr/src/;
cd /usr/src/
ls -l nginx-1.24.0.tar.gz
#通过Tar工具对其解压;
tar -xzvf nginx-1.24.0.tar.gz
#Cd切换至Nginx源代码目录;
cd nginx-1.24.0/
#提前创建www用户和组;
useradd -s /sbin/nologin www -M
#预编译;
./configure --prefix=/usr/local/nginx/ --user=www --group=www --with-http_stub_status_module
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx软件服务是否部署成功;
ls -l /usr/local/nginx/
#启动Nginx服务进程;
/usr/local/nginx/sbin/nginx
#查看Nginx进程状态;
ps -ef|grep -aiE nginx
#Firewalld防火墙对外开放80端口;
firewall-cmd --add-port=80/tcp --permanent
systemctl reload firewalld.service
三、基于SHELL编程开发Nginx一键部署脚本(v2版本,引入变量)
#!/bin/bash
#2024年5月8日15:03:33
#auto install nginx web.
#by author www.jfedu.net
####################
NGX_VER="1.24.0"
NGX_YUM="yum install -y"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_SRC=$(echo $NGX_SOFT|sed 's/\.tar.*//g')
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
#提前解决编译时所需的依赖环境、库文件;
$NGX_YUM wget gzip gcc tar make
$NGX_YUM pcre pcre-devel zlib-devel
#下载Nginx软件包;
wget -c $NGX_URL/$NGX_SOFT -P /usr/src/
#Cd切换/usr/src/;
cd /usr/src/
ls -l $NGX_SOFT
#通过Tar工具对其解压;
tar -xzvf $NGX_SOFT
#Cd切换至Nginx源代码目录;
cd $NGX_SRC/
#提前创建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 -aiE nginx
#Firewalld防火墙对外开放80端口;
firewall-cmd --add-port=80/tcp --permanent
systemctl reload firewalld.service
四、基于SHELL编程开发Nginx一键部署脚本(v3版本,引入变量和if判断)
#!/bin/bash
#2024年4月10日14:55:44
#auto install nginx web.
#by author www.jfedu.net
#####################
NGX_VER="$1"
NGX_YUM="yum install -y"
NGX_DIR="/usr/local/nginx"
NGX_SOFT="nginx-${NGX_VER}.tar.gz"
NGX_URL="http://nginx.org/download"
NGX_SRC=$(echo $NGX_SOFT|sed 's/\.tar.gz//g')
NGX_ARGS="--user=www --group=www --with-http_stub_status_module"
if [ $# -eq 0 ];then
echo -e "\033[32m--------------\033[0m"
echo -e "\033[32mUsage:{/bin/sh $0 1.12.2|1.24.0|help}\033[0m"
exit 1
fi
if [ $1 == "-h" -o $1 == "help" ];then
echo -e "\033[32m--------------\033[0m"
echo -e "\033[32mUsage:{/bin/sh $0 1.12.2|1.24.0|help}\033[0m"
exit 1
fi
#判断Nginx WEB软件是否部署,如果没有部署则部署即可;
if [ ! -f $NGX_DIR/sbin/nginx ];then
CHECK_NUM=$(rpm -qa|grep -aiwE "gcc|pcre-devel"|wc -l)
if [ $CHECK_NUM -lt 2 ];then
#提前解决编译Nginx所需依赖环境、库文件;
$NGX_YUM wget gzip tar make gcc
$NGX_YUM pcre pcre-devel zlib-devel
fi
#从Nginx官网下载软件包;
wget -c $NGX_URL/$NGX_SOFT -P /usr/src/
#Cd切换至/usr/src/;
cd /usr/src/
#通过Tar工具对其解压;
tar -xzvf $NGX_SOFT
#Cd切换至Nginx源代码目录;
cd $NGX_SRC/
#提前创建www用户和组;
useradd -s /sbin/nologin www -M
#预编译;
./configure --prefix=$NGX_DIR/ $NGX_ARGS
#编译;
make -j4
#安装;
make -j4 install
#查看Nginx WEB软件是否部署成功;
ls -l $NGX_DIR/
#启动Nginx服务进程;
$NGX_DIR/sbin/nginx
#查看Nginx进程;
ps -ef|grep -aiE nginx
#检测Nginx监听80端口是否启动;
netstat -tnlp|grep -aiwE 80
firewall-cmd --list-all |grep -aiwE "ports"|grep -aiE "80" >>/dev/null 2>&1
if [ $? -ne 0 ];then
#Firewalld防火墙对外开放80端口;
firewall-cmd --add-port=80/tcp --permanent
systemctl reload firewalld.service
fi
else
echo "ls -ld $NGX_DIR/"
ls -l $NGX_DIR
echo -e "\033[31m--------------\033[0m"
echo -e "\033[31mNginx WEB软件服务已经安装,请退出.\033[0m"
exit 0
fi