zoukankan      html  css  js  c++  java
  • Nginx源码编译安装 -(脚本)

    #!/bin/bash
    Ngx_bag="nginx-1.14.0"
    Ngx_src="${Ngx_bag}.tar.gz"
    Ngx_dir=/usr/local/nginx_14
    
    # 安装nginx依赖软件
    function install_depend_package {
            yum  install gcc-c++ zlib-devel pcre-devel automake -y
    }
    
    # 创建nginx源码包存放目录
    function create_source_storage_directory {
            if [ ! -d /usr/src/nginx ];then
                    mkdir /usr/src/nginx -p
            fi
            cd /usr/src/nginx
    }
    
    # 下载nginx源码包
    function download_nginx_package {
            if [ ! -f ${Ngx_src} ];then
                    wget -c http://nginx.org/download/${Ngx_src}
            fi
    }
    
    # 编译安装nginx
    function compile_install_nginx {
            if [ ! -f ${Ngx_src} ];then
                    echo -e "33[31m Nginx package is not download33[0m"
            else
                    if [ ! -d ${Ngx_bag} ];then
                            tar -xzf ${Ngx_src}
                    else
                            tar -xzf ${Ngx_src}
                    fi
                    cd ${Ngx_bag}
                    ./configure --prefix=${Ngx_dir}
                    make && make install
            fi
    }
    
    # centos6版本时,加入系统服务管理
    function join_system_services_os6 {
            if [ -f ${Ngx_dir}/sbin/nginx ];then
    echo "#!/bin/bash
    # chkconfig: 2345 61 62
    # description: nginx.service
    function start_nginx {
            if [ ! -s ${Ngx_dir}/logs/nginx.pid ];then
                    ${Ngx_dir}/sbin/nginx
            else
                    echo -e "33[33mNginx is already running33[0m"
            fi
    }
    function stop_nginx {
            if [ -s  ${Ngx_dir}/logs/nginx.pid ];then
                    kill $(cat ${Ngx_dir}/logs/nginx.pid)
                    sleep 1
            else
                    echo -e "33[33mNginx is no running33[0m"
                    return 1
            fi
    }
    function restart_nginx {
            stop_nginx
            if [ $? -ne 1 ];then
                    sleep 1
                    start_nginx
            fi
    }
    case  $1 in
            start)
            start_nginx
            ;;
            stop)
            stop_nginx
            ;;
            restart)
            restart_nginx
            ;;
            *)
            echo -e "33[33mUsage: start | restart | stop 33[0m"
            ;;
    esac 
    " > /etc/init.d/nginx
                    chmod +x /etc/init.d/nginx
            else
                    echo -e "33[31m Nginx is not install33[0m"                          
            fi
    }
    
    # centos7版本时,加入系统服务管理
    function join_system_services_os7 {
            if [ -f ${Ngx_dir}/sbin/nginx ];then
    echo "[Unit]
    After=network-online.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    PIDFile=${Ngx_dir}/logs/nginx.pid
    ExecStart=${Ngx_dir}/sbin/nginx -c ${Ngx_dir}/conf/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    " > /usr/lib/systemd/system/nginx_os7.service
            else
                    echo -e "33[31m Nginx is not install33[0m"
            fi
    }
    
    while true
    do
            echo -e "33[33m =============================33[0m"
            echo -e "33[36m 1)Install Nginx33[0m"
            echo -e "33[36m 2)Join system services of OS633[0m"
            echo -e "33[36m 3)Join system services of OS733[0m"
            echo -e "33[36m 0)Exit33[0m"
            read -p "Please Input Number: " Num
            case $Num in
    
                            echo -e "33[33m Nginx is already installed33[0m"
                    else
                            install_depend_package
                            create_source_storage_directory
                            download_nginx_package
                            compile_install_nginx
                    fi
                    ;;
                    2)
                    join_system_services_os6
                    ;;
                    3)
                    join_system_services_os7
                    ;;
                    0)
                    exit
                    ;;
                    *)
                    echo -e "33[31mInput error,Please re-enter33[0m"
                    ;;
            esac
    done
    
  • 相关阅读:
    shell命令--stat
    英文段子
    OCP读书笔记(16)
    shell命令--uptime
    OCP读书笔记(15)
    shell命令--dmesg
    OCP读书笔记(14)
    shell命令--hostname
    OCP读书笔记(13)
    shell命令--uname
  • 原文地址:https://www.cnblogs.com/IMSCZ/p/12194093.html
Copyright © 2011-2022 走看看