shell脚本一键安装nginx[最终版]
直接上脚本了, 支持离线在线安装, 发现本地包则安装本地版, 无本地包则检测是否联网, 联网则下载依赖和安装包自动编译安装, 无本地包无联网则退出。
#!/bin/bash #------------------------------------------------------------------------------------------------------------------# #------------------------------------------------------------------------------------------------------------------# #| chenglee public nginx |# #| version: nginx-1.13.12 |# #| version: openssl-1.1.1 |# #| version: pcre-8.40 |# #| version: zlib-1.2.11 |# #| 2018.12.12 |# #------------------------------------------------------------------------------------------------------------------# #| Some people die at the age of 25 and don't bury themselves in the earth until they are 75 |# #------------------------------------------------------------------------------------------------------------------# #| $$$$ $$ $$ $$$$$$ $$ $$ $$$$$$ $$ $$$$$$ $$$$$$ |# #| $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ $$ |# #| $$ $$$$$$$ $$$$$ $$ $$ $ $$ $$$$$$ $$ $$$$$ $$$$$ |# #| $$ $$ $$ $$ $$ $ $ $$ $$ $$ $$ $$ |# #| $$$$ $$ $$ $$$$$$ $$ $$ $$$$$ $$ $$$$$$ $$$$$$ $$$$$$ |# #------------------------------------------------------------------------------------------------------------------# PRENAME="nginx" #------------------------------------------------OFF--VERSION------------------------------------------------------# openssl_version=`basename openssl-*.tar.gz .tar.gz | awk -F '-' '{print$2}'` pcre_version=`basename pcre-*.tar.gz .tar.gz | awk -F '-' '{print$2}'` zlib_version=`basename zlib-*.tar.gz .tar.gz | awk -F '-' '{print$2}'` nginx_version=`basename nginx-*.tar.gz .tar.gz | awk -F '-' '{print$2}'` #------------------------------------------------ON---VERSION------------------------------------------------------# opensslv="1.1.1" pcrev="8.40" zlibv="1.2.11" nginxv="1.13.12" #------------------------------------------------VERSIONEND--------------------------------------------------------# installpath=$(cd `dirname $0`; pwd)function environment(){echo "|------------------------ CHECK GCC--------------------------|"GCCBIN=`which gcc`GCCV=$(echo $GCCBIN | grep "gcc")if [[ "$GCCV" != "" ]]thenecho "gcc was installed "elseecho "install gcc"yum install gcc gcc-c++ -y >/dev/null 2>&1fi }function initialize(){installpath=$(cd `dirname $0`; pwd)cd ${installpath}cd ${PRENAME}/lib/openssl* && OPENSSLPATH=`pwd`cd ${installpath}cd ${PRENAME}/lib/pcre* && PCREPATH=`pwd`cd ${installpath}cd ${PRENAME}/lib/zlib* && ZLIBPATH=`pwd`cd ${installpath} }#------------------------------------------------------SSLSTRAT----------------------------------------------------# function openssl(){echo "|-------------------------- OPENSSL--------------------------|"echossl=`ls | grep openssl-*.tar.gz`if [[ "$ssl" != "" ]]thenecho "|-----------------------[发现离线压包]-----------------------|"/usr/bin/sleep 3opensslinstall_offelseecho "|-----------------------[未发现离线包]-----------------------|"echo "|-----------------[开始判断是否连接外网安装]-----------------|"/usr/bin/sleep 3onopensslfi } function opensslinstall_off(){echo "|---------------------[正在安装离线包]----------------------|"cd ${installpath}mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}#opensstar -zxvf openssl-${openssl_version}.tar.gz -C ${PRENAME}/lib >/dev/null 2>&1cd ${PRENAME}/lib/openssl* && OPENSSLPATH=`pwd`./config --prefix=${OPENSSLPATH} >${installpath}/logs/openssl.log >/dev/null 2>&1if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/openssl.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fiok } function onopenssl(){httpcode=`curl -I -m 10 -o /dev/null -s -w %{http_code}'\n' http://www.baidu.com`net1=$(echo $httpcode | grep "200")if [[ "$net1" != "" ]]thenecho "|-----------------------[ 成功 ]-----------------------|"echo "|-----------------------[准备联网安装]-----------------------|"/usr/bin/sleep 3wgetopensslelseecho "|-----------------------[ 失败 ]-----------------------|"echo "|-----------------------[检测不到网络]-----------------------|"/usr/bin/sleep 3exit;fi } function wgetopenssl(){wget_v=`which wget`wget_vv=$(echo $wget_v | grep wget)if [[ "$wget_vv" != "" ]]thenwget https://ftp.openssl.org/source/openssl-${opensslv}.tar.gzopensslinstall_onelseyum install wget -ywget https://ftp.openssl.org/source/openssl-${opensslv}.tar.gzopensslinstall_onfi } function opensslinstall_on(){echo "|---------------------[正在安装在线包]----------------------|"cd ${installpath}mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}tar -zxvf openssl-${opensslv}.tar.gz -C ${PRENAME}/lib >/dev/null 2>&1cd ${PRENAME}/lib/openssl* && OPENSSLPATH=`pwd`./config --prefix=${OPENSSLPATH} >${installpath}/logs/openssl.log >/dev/null 2>&1if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/openssl.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 1fiok } #---------------------------------------------------SSLEND---------------------------------------------------------# #--------------------------------------------------PCRESTART-------------------------------------------------------# function pcre(){echo "|-------------------------- PCRE --------------------------|"echopcr=`ls | grep pcre-*.tar.gz`if [[ "$pcr" != "" ]]thenecho "|-----------------------[发现离线压包]-----------------------|"/usr/bin/sleep 3pcreinstall_offelseecho "|-----------------------[未发现离线包]-----------------------|"echo "|-----------------[开始判断是否连接外网安装]-----------------|"/usr/bin/sleep 3onpcrefi } function pcreinstall_off(){echo "|---------------------[正在安装离线包]----------------------|"cd ${installpath}#mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}tar -zxvf pcre-${pcre_version}.tar.gz -C ${PRENAME}/lib >/dev/null 2>&1cd ${PRENAME}/lib/pcre* && PCREPATH=`pwd`./configure --prefix=${PCREPATH} >${installpath}/logs/pcre.log >/dev/null 2>&1if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/pcre.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fi ok } function onpcre(){wget http://ftp.pcre.org/pub/pcre/pcre-${pcrev}.tar.gzecho "|---------------------[正在安装在线包]----------------------|"cd ${installpath}#mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}tar -zxvf pcre-${pcrev}.tar.gz -C ${PRENAME}/lib >/dev/null 2>&1cd ${PRENAME}/lib/pcre* && PCREPATH=`pwd`./configure --prefix=${PCREPATH} >${installpath}/logs/pcre.log >/dev/null 2>&1if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/pcre.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fi ok } #----------------------------------------------------PCREEND-------------------------------------------------------# #---------------------------------------------------STARTZLIB------------------------------------------------------# function zlib(){echo "|-------------------------- ZLIB --------------------------|"echozli=`ls | grep zlib-*.tar.gz`if [[ "$zli" != "" ]]thenecho "|-----------------------[发现离线压包]-----------------------|"/usr/bin/sleep 3zlibinstall_offelseecho "|-----------------------[未发现离线包]-----------------------|"echo "|-----------------[开始判断是否连接外网安装]-----------------|"/usr/bin/sleep 3onzlibfi } function zlibinstall_off(){echo "|---------------------[正在安装离线包]----------------------|"cd ${installpath}#mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}tar -zxvf zlib-${zlib_version}.tar.gz -C ${PRENAME}/lib >/dev/null 2>&1cd ${PRENAME}/lib/zlib* && ZLIBPATH=`pwd`./configure --prefix=${ZLIBPATH} >${installpath}/logs/zlib.log >/dev/null 2>&1if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/zlib.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fi } function onzlib(){wget http://www.zlib.net/fossils/zlib-${zlibv}.tar.gzecho "|---------------------[正在安装在线包]----------------------|"cd ${installpath}#mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}tar -zxvf zlib-${zlibv}.tar.gz -C ${PRENAME}/lib >/dev/null 2>&1cd ${PRENAME}/lib/zlib* && PCREPATH=`pwd`./configure --prefix=${PCREPATH} >${installpath}/logs/zlib.log >/dev/null 2>&1if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/zlib.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fi } #----------------------------------------------------ZLIBEND-------------------------------------------------------# #---------------------------------------------------STRATNGINX-----------------------------------------------------# function nginx(){echo "|-------------------------- NGINX --------------------------|"echongin=`ls | grep nginx-*.tar.gz`if [[ "$ngin" != "" ]]thenecho "|-----------------------[发现离线压包]-----------------------|"/usr/bin/sleep 3nginxinstall_offelseecho "|-----------------------[未发现离线包]-----------------------|"echo "|-----------------[开始判断是否连接外网安装]-----------------|"/usr/bin/sleep 3onnginxfi } function nginxinstall_off(){echo "|---------------------[正在安装离线包]----------------------|"cd ${installpath}initializetar -zxvf nginx-${nginx_version}.tar.gz >/dev/null 2>&1cd nginx-* && NGINXPATH=`pwd`./configure --prefix=${installpath}/${PRENAME} --with-pcre=${PCREPATH} --with-openssl=${OPENSSLPATH} --with-zlib=${ZLIBPATH}if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/nginx.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fi } function onnginx(){wget http://nginx.org/download/nginx-${nginxv}.tar.gzecho "|---------------------[正在安装在线包]----------------------|"cd ${installpath}initialize#mkdir -p logs ${PRENAME}/lib && touch logs/{openssl.log,pcre.log,zlib.log,nginx.log}tar -zxvf nginx-${nginxv}.tar.gz >/dev/null 2>&1cd nginx-* && NGINXPATH=`pwd`./configure --prefix=${installpath}/${PRENAME} --with-pcre=${PCREPATH} --with-openssl=${OPENSSLPATH} --with-zlib=${ZLIBPATH}if [[ $? -ne 0 ]]; thenreturn 1elsemake && make install >${installpath}/logs/nginx.logif [[ $? -ne 0 ]]; thenreturn 1fireturn 0fi } #----------------------------------------------------NGINXEND-------------------------------------------------------# function ok(){ echo "|****************************************************************************************************************|" echo "| WW WW EEEEEEE LL CCCCC OOOOOO MM MM EEEEEEE |" echo "| WW WWWW WW EE LL CC OO OO MMMM MMMM EE |" echo "| WW WW WW WW EEEEE LL CC OO OO MM MM MM MM EEEEE |" echo "| WW W W WW EE LL CC OO OO MM M M MM EE |" echo "| WW WW EEEEEEE LLLLLL CCCCC OOOOOO MM MMM MM EEEEEEE |" echo "|****************************************************************************************************************|" } function main(){ environment openssl pcre zlib nginx ok } main
转载于:https://www.cnblogs.com/chenglee/articles/10112137.html
shell脚本一键安装nginx[最终版]相关推荐
- shell脚本一键安装nginx
使用shell脚本一键安装Nginx 操作环境Centos7,联网进行安装. 代码如下: #!/bin/bash #this is nginx.sh #date 2018.10.6 [ $(i ...
- shell脚本一键安装二进制Apache
转载来源 :shell脚本一键安装二进制Apache : http://www.178linux.com/23401 安装背景:用的一台最小化安装的centos6. 编译安装安装的必备安装gcc,gc ...
- shell脚本一键安装LNMP(liunx+nginx+mysql+php)环境
#!/bin/bash # author:kwin # Email:kwinwong@hotmail.comsrc="/usr/local/src/" cd $src#找到指定进程 ...
- mysql 一键安装 linux_linux下mysql8 shell脚本一键安装
1:下载mysql8文件 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-el7-x86_64.tar.gz 2:新建一个my.cnf文 ...
- centos5.8安装mysql_Centos5.8上面用Shell脚本一键安装mysql5.5.25源码包
最近在研究mysql集群,至少要安装部署2台或者多台mysql数据库,操作起来即麻烦又很耗时,今天根据安装步骤写了一个Shell脚本,只需执 行以下脚本就可以快速安装mysql数据库,对初学者或者想学 ...
- Shell脚本一键安装软件
一.JDK一键安装 基本步骤: 1.上传 JDK 压缩包到虚拟机的 opt 目录下 2.启动 Shell 脚本即可一键安装 3.脚本内容 #!/bin/bash cd /opt gz=`find -n ...
- Centos 上面用Shell脚本一键安装LAMP环境
1)系统环境介绍 Centos 5.8 64位 Apache:httpd-2.4.4.tar.gz PHP: php-5.4.17.tar.gz Mysq ...
- shell脚本一键安装lnmp
#!/bin/bash #安装nginx依赖 yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel #解压nginx安装包 ta ...
- shell脚本一键安装JDK及配置环境变量
为什么我要写这样安装JDK并配置环境变量的脚本呢?因为我和linux打交道还是比较多的,然而每次都要安装JDK,配置环境变量,这样的事情对于刚接触linux的人来说是很乐意做的,但是接触多了,总是做这 ...
最新文章
- java跨库调用存储_存储库仅在第二个调用数据时发送回ViewModel
- java常用类介绍及源码阅读(ArrayList)
- python出现traceback什么意思_python-异常处理 traceback获取详细异常
- 蚂蚁金服 Service Mesh 落地实践与挑战|成都Service Mesh沙龙预告
- DIV 内滚动条 样式的写法
- 视频结构化+AI,智能安防的未来
- Android应用优化之冷启动优化
- python pitfall (陷阱)--不同平台os模块文件名排序
- 返回值取vector容器的前n个元素
- webpack command not found 的意外的坑 - 原因是从node开始
- fireworks html制作,教你用Fireworks制作简洁清爽的网站页面
- 基于jsp java的汽车维修管理系统
- python近期使用总结
- Facebook、中国BAT均落选,高盛全球“漂亮50”有哪些潜力股?
- Win XP操作系统技巧
- 如何退出git log状态
- 肖特基势垒二极管SBD(Schottky Barrier Diode,简称肖特基二极管)
- C语言的内存四驱模型
- 闲鱼跳转支付宝源码+独立后台
- cdf文件 mysql,在linux下用fortran读取netcdf文件(以WRF模式输出的数据为例)
热门文章
- 中国人工智能学会通讯——深度学习与推荐系统 1.2 基于特征的推荐 (Feature-based Recommendation)...
- 完美解决html中select的option不能隐藏的问题。
- Linux 下安装配置 JDK7
- Ubuntu 下 Apache2 与Tomcat5 的交配指南.(转自互联网)
- Android 十大调试方法
- 谷歌不修用户泪流:已遭利用且影响所有安卓版本的严重 0day 漏洞 StrandHogg 详情遭曝光...
- python之路--小数据池,再谈编码,is和 == 的区别
- centos7改语言包
- 《深入理解OSGi:Equinox原理、应用与最佳实践》一3.2 Bundle状态及转换
- mysql启动报错解决-1