一键编译安装nginx-1.18.0脚本(适用centos7,ubuntu1804,debian10)
#!/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 <
[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 <
[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
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 <
[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 <
[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