基于Centos Linux编写【nginx-1.23.1】一键安装.sh脚本

文章目录

  • 背景
  • 示例图
  • 下载
  • 脚本

背景

        由于客户机比较多,经常在不同客户服务器搭建运行环境,一套系统(数据库:Mysql、Oracle、PostGreSql、Redis;Windows环境下写bat批处理脚本运行springboot)下来要占用大半天的时间。


        也有公司使用Docker容器来搭建服务,但是在生产上使用Docker运行数据库太扯,毕竟客户单位还是给提供的虚拟服务器,有些客户的服务器是十来年前的服务器,处理器核心虽然多,但再虚拟化之后性能很拉胯,在考虑客户和项目成本情况下,没办法要求用户更换服务器,再配合杀毒软件连跑个脚本文件都非常慢就,手工操作就可想而知了。


        为了解放双手,遂编写了这个nginx服务编译、安装脚本文件,顺便分享出来,写的不好的地方还望理解,如有技术和创新较好的思想,望留言相互学习。

示例图

基于Centos Linux编写【nginx-1.23.1】一键安装.sh脚本_第1张图片

下载

包含所有的依赖包和安装.sh文件
点此:跳转到下载页面

脚本

#!/bin/bash

echo -e "\033[30m########################################################################\033[0m"                                 
echo -e "\033[30m#                         一键安装Nginx运行环境                        #\033[0m"
echo -e "\033[30m########################################################################\033[0m"


#gcc依赖包目录名称
gcc_Install=gcc_Install
#pcre依赖包目录名称
nginx_pcre=nginx_pcre
#readline依赖包目录名称
readline_devel_Install=readline-devel_Install
#zlib依赖包目录名称
zlib_Install=zlib_Install/version-19
#openssl依赖包目录名称
opensslDir=openssl/openssl-rpm
#nginx安装包压缩文件
nginx_gz=nginx-1.23.1-updated.tar.gz
#nginx解压文件解压缩后的目录名称
nginxUnzipDir=nginx-1.23.1
#nginx安装主目录路径
nginxInsToDir=/usr/local/nginx
ins_gcc=`echo -e "\033[31m 安装gcc依赖 \033[0m"`
ins_pcre=`echo -e "\033[31m 安装pcre依赖 \033[0m"`
ins_readline=`echo -e "\033[31m 安装readline依赖 \033[0m"`
ins_zlib=`echo -e "\033[31m 安装zlib依赖 \033[0m"`
ins_openssl=`echo -e "\033[31m 安装openssl \033[0m"`
ins_nginx=`echo -e "\033[31m 安装nginx,安装路径[$nginxInsToDir] \033[0m"`
quit=`echo -e "\033[31m 退出安装 \033[0m"`

PS3="请输入数字序号执行安装:"

select run_ins_nginx in "$ins_gcc" "$ins_pcre" "$ins_readline" "$ins_zlib" "$ins_openssl" "$ins_nginx" "$quit"

do
	case "$run_ins_nginx" in
		#安装gcc依赖
		"$ins_gcc")
			echo -e "\033[32m 正在安装gcc依赖 \033[0m"
			#授权运行权限
			sudo chmod +x ./$gcc_Install/*.rpm
			#执行安装
			sudo rpm -Uvh ./$gcc_Install/*.rpm --nodeps --force
			echo -e "\033[32m 安装命令执行结束 \033[0m"
			;;
		#安装pcre依赖
		"$ins_pcre")
			echo -e "\033[32m 正在安装pcre依赖 \033[0m"
			#授权运行权限
			sudo chmod +x ./$nginx_pcre/*.rpm
			#执行安装
			sudo rpm -Uvh ./$nginx_pcre/*.rpm --nodeps --force
			echo -e "\033[32m 安装命令执行结束 \033[0m"
			;;
		#安装readline依赖
		"$ins_readline")
			echo -e "\033[32m 正在安装readline依赖 \033[0m"
			#授权运行权限
			sudo chmod +x ./$readline_devel_Install/*.rpm
			#执行安装
			sudo rpm -Uvh ./$readline_devel_Install/*.rpm --nodeps --force
			echo -e "\033[32m 安装命令执行结束 \033[0m"
			;;
		#安装zlib依赖
		"$ins_zlib")
			echo -e "\033[32m 正在安装zlib依赖 \033[0m"
			#授权运行权限
			sudo chmod +x ./$zlib_Install/*.rpm
			#执行安装
			sudo rpm -Uvh ./$zlib_Install/*.rpm --nodeps --force
			echo -e "\033[32m 安装命令执行结束 \033[0m"
			;;
		#安装ins_openssl依赖
		"$ins_openssl")
			echo -e "\033[32m 正在安装openssl依赖 \033[0m"
			#授权运行权限
			sudo chmod +x ./$opensslDir/*.rpm
			#执行安装
			sudo rpm -Uvh ./$opensslDir/*.rpm --nodeps --force
			echo -e "\033[32m 安装命令执行结束 \033[0m"
			;;
		"$ins_nginx")
			echo -e "\033[32m 开始安装nginx,安装路径[$nginxInsToDir] \033[0m"
			#解压文件
			sudo tar -xf $nginx_gz
			#进入到解压缩出的nginx文件目录
			cd $nginxUnzipDir
			#创建安装目录
			mkdir $nginxInsToDir 
			mkdir $nginxInsToDir/tmp/proxy/
			mkdir $nginxInsToDir/tmp/fcgi/
			mkdir $nginxInsToDir/tmp/client/
			mkdir $nginxInsToDir/tmp/uwsgi_temp/ 
			mkdir $nginxInsToDir/tmp/scgi_temp/
			
			#预编译并验证二进制文件
			./configure --prefix=$nginxInsToDir --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --http-proxy-temp-path=$nginxInsToDir/tmp/proxy/ --http-fastcgi-temp-path=$nginxInsToDir/tmp/fcgi/ --http-client-body-temp-path=$nginxInsToDir/tmp/client/ --http-proxy-temp-path=$nginxInsToDir/tmp/proxy/ --http-fastcgi-temp-path=$nginxInsToDir/tmp/fcgi/ --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --http-uwsgi-temp-path=$nginxInsToDir/uwsgi_temp --http-scgi-temp-path=$nginxInsToDir/scgi_temp --with-stream
			
			#执行编译
			make
			#执行安装
			make install
			#删除解压缩的目录:递归删除目录文件
			cd ../
			sudo rm -rf $nginxUnzipDir
			echo -e "\033[32m 安装命令执行结束 \033[0m"
			;;
		"$quit")
			exit
			echo -e "\033[32m 已退出安装 \033[0m"
			;;
		*)
			echo -e "\033[31m 输入错误!请选择1~9的数字! \033[0m"
			;;
	esac
done

你可能感兴趣的:(linux,centos,nginx)