Nginx一键安装脚本

Nginx一键安装脚本

该脚本在联网状态下使用。
该脚本使用shell 爬取nginx官网获取版本号,在通过下载链接进行安装下载。

[root@VM-16-10-centos ~]# vim Install_NG.sh 
#!/bin/bash 
#选择nginx 版本自动安装
#------*FChao*------
#使用该脚本请保持联网环境


#-------爬取nginx官网页面--------------
yum -y install lynx &>/dev/null
#抓取页面
lynx -dump http://nginx.org/en/download.html | awk '{print $2 }'   |  egrep -o "(nginx-)(.*)(.tar.gz)" | awk '!x[$0]++' |cat -n >/tmp/Version.txt
Version=`cat /tmp/Version.txt`
#使用一下命令抓取下载链接
#lynx -dump http://nginx.org/en/download.html | sed -n '/nginx-.*.tar.gz/'p a.html | egrep -o "(http)(.*)(.tar.gz)" |  awk '!x[$0]++' |cat -n


echo "nginx 版本有:
${Version}"
echo "**************"
echo "*默认回车即可*"
echo "**************"
echo "Nginx默认为1.20.2版本,默认安装路径为:/usr/local/"
read  -p "请输入要安装的包名:"  Nginx
if [ ! -n "$Nginx" ]
	then 
		Nginx="nginx-1.20.2.tar.gz"
fi
			
read  -p "请输入安装目录:"  Dir
if [ ! -n "$Dir" ]
	then 
		Dir="/usr/local/"
fi


TIME=[$(date +'%Y-%m-%d %H:%M:%S')] 
#定义安装函数体
Install_Nginx(){
#-------关闭防火墙seliunx--------------
systemctl  stop  firewalld 
systemctl disable firewalld
setenforce 0
#--------------------------------------
echo "${TIME}正在安装依赖包..................."
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y  &>/dev/null

echo "${TIME}正在下载软件包..................."
wget http://nginx.org/download/$Nginx  &>/dev/null

echo "${TIME}正在解压软件包..................."
tar -zxvf $Nginx  &>/dev/null
rm -rf $Nginx
mkdir /var/temp/nginx -p

echo "${TIME}正在安装Nginx..................."
nginx_dir=`ls | grep -v ".tar.gz"$ | grep nginx |awk 'NR==1'`
cd  $nginx_dir/

./configure --prefix=${Dir}nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi > /tmp/install_log.txt
make  &>/dev/null
make install &>/dev/null
ln -s  ${Dir}nginx/sbin/nginx   /usr/bin/nginx
naginx_dir=`tail -14 /tmp/install_log.txt`
echo "${TIME}Nginx安装完成..................."
echo "${TIME}Nginx文件路径为:
$naginx_dir"
#---------------------------------------
rm -rf /tmp/Version.txt
rm -rf /tmp/install_log.txt
}		
Install_Nginx




#定义加入系统服务函数体
Nginx_service(){
cat << EOF >/usr/lib/systemd/system/nginx.service 
[Unit]
Description=nginx
After=network.target
   
[Service]
Type=forking
ExecStart=${Dir}nginx/sbin/nginx
ExecReload=${Dir}nginx/sbin/nginx -s reload
ExecStop=${Dir}nginx/sbin/nginx -s stop
PrivateTmp=true
   
[Install]
WantedBy=multi-user.target
EOF

systemctl  daemon-reload 
}

#--------------------------判断是否将nginx加入系统服务------
read  -p "是否加入系统服务,默认不加入(y/n):"  Ssm_service

if   [ ! -n "$Ssm_service" ] || [ "$Ssm_service" != "y" ] || [ "$Ssm_service" != "Y" ] || [ "$Ssm_service" != "n" ] || [ "$Ssm_service" != "N" ]
	then 
		if [ "$Ssm_service" = "y" ] || [ "$Ssm_service" = "Y" ];
			then
				Nginx_service
				echo "${TIME}Nginx 已加入系统服务"
		elif [ "$Ssm_service" = "n" ] || [ "$Ssm_service" = "N" ];
			then 
				echo "${TIME}${Dir}nginx/sbin/nginx  为启动文件"
		fi
fi






#--------------------------判断是否启动nginx------
read  -p "是否启动Nginx(y/n):"  start_no

if [ "$Ssm_service" = "y" ] || [ "$Ssm_service" = "Y" ];
	then 
			if [ "$start_no" = "y" ] || [ "$start_no" = "Y" ];
				then
					systemctl  start nginx
					 if [ $? -eq 0 ]
						then 
							echo "${TIME}已经使用 systemctl  start nginx 启动"
						else
							echo "${TIME}nginx 启动错误,排查是否端口冲突&&其他错误"
					 fi 					
			elif [ "$start_no" = "n" ] || [ "$start_no" = "N" ];
				then 
					echo "${TIME}nginx没有启动"
			elif   [ ! -n "$start_no" ] || [ "$start_no" != "y" ] || [ "$start_no" != "Y" ] || [ "$start_no" != "n" ] || [ "$start_no" != "N" ]
				then 
					echo "${TIME}请输入正确的值(y/n)"
			fi
elif  [ "$Ssm_service" = "n" ] || [ "$Ssm_service" = "N" ];
	then 
	
			if [ "$start_no" = "y" ] || [ "$start_no" = "Y" ];
				then
					${Dir}nginx/sbin/nginx
					 if [ $? -eq 0 ]
						then 
							echo  "${TIME}已经使用${Dir}nginx/sbin/nginx启动"
						else
							echo "${TIME}nginx 启动错误,排查是否端口冲突&&其他错误"
					 fi 					 
			elif [ "$start_no" = "n" ] || [ "$start_no" = "N" ];
				then 
					echo "${TIME}nginx没有启动"
			elif   [ ! -n "$start_no" ] || [ "$start_no" != "y" ] || [ "$start_no" != "Y" ] || [ "$start_no" != "n" ] || [ "$start_no" != "N" ]
				then 
					echo "${TIME}请输入正确的值(y/n)"
			fi
fi

#---------------------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值