Nginx源码编译安装脚本

#!/bin/bash
#
#********************************************************************
#Author:            Wuvikr
#QQ:                744123155
#Date:              2020-11-29
#FileName           Install_Nginx1.18.sh
#URL:               http://www.wuvikr.top
#Description        The test script
#Copyright (C):     2020 All rights reserved
#********************************************************************
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

CPU=`lscpu | sed -rn 's/^CPU(s)[^0-9]+([0-9]+)/1/p'`
File=nginx-1.18.0.tar.gz
Version=${File%.tar*}
Dir=/apps/nginx

install (){
    # 检测安装包并解压
    [ -f $File ] && tar xvf nginx-1.18.0.tar.gz || echo -e 'e[1;31m当前目录没有检测到安装包,请提前准备好安装包!e[0m'

    # 安装相关包
    yum -y install gcc make pcre-devel openssl-devel zlib-devel

    # 创建nginx用户
    useradd -r -s /sbin/nologin nginx

    # 切换目录
    cd $Version

    # 编译安装
    ./configure 
    --prefix=$Dir 
    --user=nginx 
    --group=nginx 
    --with-http_ssl_module 
    --with-http_v2_module 
    --with-http_realip_module 
    --with-http_stub_status_module 
    --with-http_gzip_static_module 
    --with-pcre --with-stream 
    --with-stream_ssl_module 
    --with-stream_realip_module

    make -j $CPU && make install

    # 创建软连接
    ln -s /apps/nginx/sbin/nginx /usr/sbin/

    # 创建service文件
    cat > /lib/systemd/system/nginx.service <<EOF
    [Unit]                                                                         
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target

    [Service]
    Type=forking
    PIDFile=/apps/nginx/run/nginx.pid
    ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf -g "pid $Dir/run/nginx.pid;"
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID

    [Install]
    WantedBy=multi-user.target
EOF

    # 创建pid目录
    mkdir /apps/nginx/run/

    # 重新加载配置并启动nginx
    systemctl daemon-reload
    systemctl enable --now nginx
}

install 

echo -e "e[1;32m${Version}安装成功!e[0m"

原文地址:https://www.cnblogs.com/wuvikr/p/14056413.html