一键编译安装nginx-1.18.0脚本(适用centos7,ubuntu1804,debian10)

   2023-02-10 学习力0
核心提示:#!/bin/shcentos_page="gccpcre-developenssl-develzlib-develmake"ubuntu_page="libpcre3libpcre3-devopenssllibssl-devgccmakezlib1g-dev"COLOR="echo -e \\E[1;32m"COLOR1="echo -e \\E[1;31m"END="\\E[0m"centos_inst
#!/bin/sh
centos_page="
gcc
pcre-devel
openssl-devel
zlib-devel
make
"
ubuntu_page="
libpcre3
libpcre3-dev
openssl
libssl-dev
gcc
make
zlib1g-dev
"

COLOR="echo -e \\E[1;32m"
COLOR1="echo -e \\E[1;31m"
END="\\E[0m"

centos_install(){
    . /etc/init.d/functions
    #判断编译安装的依赖包是否存在
    for PK in $centos_page;do
        rpm -q $PK &> /dev/null || yum -y -q install $PK    
    done
    #创建用户
    id nginx &> /dev/null || useradd -s /sbin/nologin nginx
    #下载源码包
    ${COLOR}"正在下载源码包,请稍等!"${END}
    cd /usr/local/src/
    [ -e nginx-1.18.0.tar.gz ] || wget http://nginx.org/download/nginx-1.18.0.tar.gz &> /dev/null
    [ -e nginx-1.18.0.tar.gz ] && tar xf nginx-1.18.0.tar.gz
    #创建安装目并修改权限
    [ -d /apps/nginx/run ] || mkdir -p /apps/nginx/run
    chown -R nginx.nginx /apps/nginx
    #编译
    ${COLOR}"正在编译安装,请稍等!"${END}
    cd  nginx-1.18.0/
    ./configure --prefix=/apps/nginx \
    --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 `lscpu | awk \'/^CPU\(s\)/{print $2}\'` && make install
    #修改配置文件
    [ -e /apps/nginx/conf/nginx.conf ] && sed -i \'s@^#pid.*@pid /apps/nginx/run/nginx.pid;@\' /apps/nginx/conf/nginx.conf
    cat > /usr/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
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID

    [Install]
    WantedBy=multi-user.target
EOF
    #命令创建
    ln -s /apps/nginx/sbin/nginx /usr/bin/nginx
    #启动服务
    systemctl daemon-reload
    systemctl enable --now nginx &> /dev/null && action "nginx安装启动完成!" || action "nginx启动失败,请检查配置文件!" false 
}

ubuntu_install(){
    #判断编译安装的依赖包是否存在
    for PK1 in $ubuntu_page;do
        dpkg -s $PK1 &> /dev/null || apt -y install $PK1
    done 
    #创建用户
    id nginx &> /dev/null || useradd -s /sbin/nologin nginx
    #下载源码包
    ${COLOR}"正在下载源码包,请稍等!"${END}
    cd /usr/local/src/
    [ -e nginx-1.18.0.tar.gz ] || wget http://nginx.org/download/nginx-1.18.0.tar.gz &> /dev/null
    [ -e nginx-1.18.0.tar.gz ] && tar xf nginx-1.18.0.tar.gz
    #创建安装目并修改权限
    [ -d /apps/nginx/run ] || mkdir -p /apps/nginx/run
    chown -R nginx.nginx /apps/nginx
    #编译
    ${COLOR}"正在编译安装,请稍等!"${END}
    cd  nginx-1.18.0/
    ./configure --prefix=/apps/nginx \
    --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 `lscpu | awk \'/^CPU\(s\)/{print $2}\'` && make install
    #修改配置文件
    [ -e /apps/nginx/conf/nginx.conf ] && sed -i \'s@^#pid.*@pid /apps/nginx/run/nginx.pid;@\' /apps/nginx/conf/nginx.conf
    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
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
EOF
    #命令创建
    ln -s /apps/nginx/sbin/nginx /usr/bin/nginx
    #启动服务
    systemctl daemon-reload
    systemctl enable --now nginx &> /dev/null && ${COLOR}"nginx启动成功!"${END} || ${COLOR1}"nginx启动失败,请检查配置文件!"${END}
}

#分系统类型进行安装
#ostype1=`awk -F\'"\' \'/^VERSION_ID/{print $2}\' /etc/os-release` 
ostype2=`awk -F\'"\' \'/^NAME/{print $2}\' /etc/os-release`
if [[ $ostype2 == "CentOS Linux" ]];then
    centos_install
elif [[ $ostype2 == "Ubuntu" ]];then
    ubuntu_install
elif [[ $ostype2 == "Debian GNU/Linux" ]];then
    ubuntu_install
fi
 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 【树莓派】树莓派(Debian)- root用户无法使用SSH登录
    【树莓派】树莓派(Debian)- root用户无法使用
    在树莓派4B上安装了最新的Debian64位系统默认账户密码:pi/raspberryroot/    ------无密码(通过sudo passwd root修改root密码后)问题root修改密码后还是无法登录解决这个系统默认不允许root使用SSH登录登录root用户su 打开配置文件 nano /etc/ssh/sshd_
    03-08
  • windows10环境下安装Linux子系统---debian
    windows10环境下安装Linux子系统---debian
    windows10环境下安装Linux子系统---debian一、前提1、在控制面板-程序-启用与关闭Windows功能中,勾选“适用于Linux的Windows子系统”  2、首先需要创建一个文件夹,用来存放子系统,在需要的位置创建即可,文件夹名任意3、手动下载Windows子系统发行版包,
    03-08
  • Debian 环境安装新版 nginx
    Debian 环境安装新版 nginx
    在 Debian 系统中,我们可以通过 apt-get 安装系统自带的 nginx,这样安装的 nginx 版本略旧。Nginx 官网提供了一些编辑绎好的 deb 安装包,我们只需更新安装源,就可以通过 apt-get 来安装最新的稳定版 Nginx 了。 加载安装源并导入key$ echo deb http://ng
    03-08
  • 使用apt-mirror建立本地debian仓库源
     先介绍一下环境:主机:Win7虚拟机:VirtualBox + Debian7由于软件源的体积比较大,所以我又给虚拟机添加了一块50GB的虚拟硬盘(给虚拟机添加虚拟硬盘的方法参见:http://www.cnblogs.com/pengdonglin137/p/3366589.html , 其中介绍了如何在Vmware和Virtua
    03-08
  • Debian其实有提供附带了各种桌面的安装镜像
    我之前试着装Debian,但它的安装程序我感觉很难用,装上去了之后也有许许多多的问题,比如中文不显示。今天我发现带Live CD的Debian镜像有带了各个桌面的版本,于是我就试着下载KDE版本的Debian。由于我房间的WLAN质量不佳,用500kb/s的速度下了几个小时,那
    02-10
  • Debian镜像使用帮助 Debian镜像下载
    Debian镜像使用帮助 Debian镜像下载
    http://mirrors.163.com/.help/debian.html
    02-10
  • Debian 11 安装Nvidia闭源驱动
    目录通过APT安装Nvidia驱动为Nvidia驱动注册Secure Boot参考文档本人的系统是Debian11,最近一阵子在捣鼓用apt安装英伟达的闭源驱动,同时支持Secure Boot,查阅了Debian Wiki之类的资料之后,在这里整理一下。通过APT安装Nvidia驱动首先,需要确保你的Debian
    02-10
  • Debian时区和时间自动同步
    时区和时间自动同步(1)时间设置及其同步#date  -s 07/26/2005 //2005年7月26日    //修改系统日期时间为当前正确时间#date -s 11:12:00     //11点12分0秒#vim /etc/default/rcS  //设定 BIOS 时间使用 UTC 时区将选项 UTC 的值设定成 yes
    02-10
  • debian/ubuntu系统vi无法删除字符的解决办法
    之前在 Linux 下操作,一直使用的是 Centos 系统,使用 vi 编辑命令一直很顺畅。 最近,入手了一台 debian 操作系统的 vps。在操作 vi 命令时,发现当输入 i 要进行文件编辑时,上下左右的光标无法移动,屏幕上总会出现字符,而且 backspace 只能后退,无法
    02-10
  • Debian安装JAVA环境 debian安装jdk11
     http://blog.csdn.net/gongora/archive/2009/05/15/4190469.aspxDebian官方没有维护专门的Java软件包,所以不能直接用apt-get工具来安装。在Debian系统中要安装Java,有两种方式,一种是用传统方式;一种是Debian方式。1. 传统方式在 sun 下载了最新的 JDK
    02-10
点击排行