直接上脚本了, 支持离线在线安装, 发现本地包则安装本地版, 无本地包则检测是否联网, 联网则下载依赖和安装包自动编译安装, 无本地包无联网则退出。

#!/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[最终版]相关推荐

  1. shell脚本一键安装nginx

        使用shell脚本一键安装Nginx 操作环境Centos7,联网进行安装. 代码如下: #!/bin/bash #this is nginx.sh #date 2018.10.6 [ $(i ...

  2. shell脚本一键安装二进制Apache

    转载来源 :shell脚本一键安装二进制Apache : http://www.178linux.com/23401 安装背景:用的一台最小化安装的centos6. 编译安装安装的必备安装gcc,gc ...

  3. shell脚本一键安装LNMP(liunx+nginx+mysql+php)环境

    #!/bin/bash # author:kwin # Email:kwinwong@hotmail.comsrc="/usr/local/src/" cd $src#找到指定进程 ...

  4. 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文 ...

  5. centos5.8安装mysql_Centos5.8上面用Shell脚本一键安装mysql5.5.25源码包

    最近在研究mysql集群,至少要安装部署2台或者多台mysql数据库,操作起来即麻烦又很耗时,今天根据安装步骤写了一个Shell脚本,只需执 行以下脚本就可以快速安装mysql数据库,对初学者或者想学 ...

  6. Shell脚本一键安装软件

    一.JDK一键安装 基本步骤: 1.上传 JDK 压缩包到虚拟机的 opt 目录下 2.启动 Shell 脚本即可一键安装 3.脚本内容 #!/bin/bash cd /opt gz=`find -n ...

  7. Centos 上面用Shell脚本一键安装LAMP环境

    1)系统环境介绍      Centos 5.8 64位      Apache:httpd-2.4.4.tar.gz      PHP:   php-5.4.17.tar.gz       Mysq ...

  8. shell脚本一键安装lnmp

    #!/bin/bash #安装nginx依赖 yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel #解压nginx安装包 ta ...

  9. shell脚本一键安装JDK及配置环境变量

    为什么我要写这样安装JDK并配置环境变量的脚本呢?因为我和linux打交道还是比较多的,然而每次都要安装JDK,配置环境变量,这样的事情对于刚接触linux的人来说是很乐意做的,但是接触多了,总是做这 ...

最新文章

  1. java跨库调用存储_存储库仅在第二个调用数据时发送回ViewModel
  2. java常用类介绍及源码阅读(ArrayList)
  3. python出现traceback什么意思_python-异常处理 traceback获取详细异常
  4. 蚂蚁金服 Service Mesh 落地实践与挑战|成都Service Mesh沙龙预告
  5. DIV 内滚动条 样式的写法
  6. 视频结构化+AI,智能安防的未来
  7. Android应用优化之冷启动优化
  8. python pitfall (陷阱)--不同平台os模块文件名排序
  9. 返回值取vector容器的前n个元素
  10. webpack command not found 的意外的坑 - 原因是从node开始
  11. fireworks html制作,教你用Fireworks制作简洁清爽的网站页面
  12. 基于jsp java的汽车维修管理系统
  13. python近期使用总结
  14. Facebook、中国BAT均落选,高盛全球“漂亮50”有哪些潜力股?
  15. Win XP操作系统技巧
  16. 如何退出git log状态
  17. 肖特基势垒二极管SBD(Schottky Barrier Diode,简称肖特基二极管)
  18. C语言的内存四驱模型
  19. 闲鱼跳转支付宝源码+独立后台
  20. cdf文件 mysql,在linux下用fortran读取netcdf文件(以WRF模式输出的数据为例)

热门文章

  1. 中国人工智能学会通讯——深度学习与推荐系统 1.2 基于特征的推荐 (Feature-based Recommendation)...
  2. 完美解决html中select的option不能隐藏的问题。
  3. Linux 下安装配置 JDK7
  4. Ubuntu 下 Apache2 与Tomcat5 的交配指南.(转自互联网)
  5. Android 十大调试方法
  6. 谷歌不修用户泪流:已遭利用且影响所有安卓版本的严重 0day 漏洞 StrandHogg 详情遭曝光...
  7. python之路--小数据池,再谈编码,is和 == 的区别
  8. centos7改语言包
  9. 《深入理解OSGi:Equinox原理、应用与最佳实践》一3.2 Bundle状态及转换
  10. mysql启动报错解决-1