nginx自动安装

上一篇 / 下一篇  2021-07-28 18:08:23 / 个人分类:nginx

#!/bin/bash
#=============可修改:安装包目录====================
NGINX_DIR=/opt/nginx/

#=================================
function environment() {
starttime=`date +'%Y-%m-%d %H:%M:%S'`
NGINX_PREFIX=/usr/local/nginx
    if [[ "$USER" != "root" ]]; then
        echo "需要使用root用户进行安装"
        return 1
    fi

        if [ ! -d ${NGINX_PREFIX} ];then

                echo "开始安装nginx"
                        mkdir -p $NGINX_DIR
        else
            echo "用户已安装过nginx,请先卸载再安装,卸载安装命令: find / -name "nginx*" |xargs rm -rf   &> /tmp/nginx_install.log  "
                #临时使用,卸载重装
        find / -name "nginx*" |xargs rm -rf   &> /tmp/nginx_install.log
                echo "nginx卸载失败,再来一次即可"
        return 1
    fi


echo "===========================安装基础环境包======================================="
/usr/bin/yum -y install  wget curl gcc gcc-c++  pcre pcre-devel zlib-devel openssl openssl-devel &> /tmp/nginx_install.log
#yumdownloader --resolve --destdir=./  wget
#表示不是等于0:上面命令执行失败则执行下面的命令
if [[ $? -ne 0 ]]; then  
echo "在线安装失败,进行本地安装"
echo "本地源下载安装包"
mkdir -p $NGINX_DIR/linux-basic
cd $NGINX_DIR/linux-basic && rm -rf $NGINX_DIR/linux-basic/*.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/curl-7.29.0-59.el7_9.1.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/gcc-4.8.5-44.el7.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/gcc-c++-4.8.5-44.el7.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/keyutils-libs-1.5.8-3.el7.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/libcom_err-1.42.9-19.el7.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/libsepol-2.5-10.el7.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/libverto-0.2.5-4.el7.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/openssl-1.0.2k-21.el7_9.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/openssl-devel-1.0.2k-21.el7_9.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/pcre-8.32-17.el7.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/pcre-8.32-17.el7.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/pcre-devel-8.32-17.el7.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/pcre-devel-8.32-17.el7.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/wget-1.14-18.el7_6.1.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/zlib-1.2.7-19.el7_9.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/zlib-devel-1.2.7-19.el7_9.i686.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/zlib-devel-1.2.7-19.el7_9.x86_64.rpm
wget -c http://iskyinfo.gicp.net:5200/linux-basic/libselinux-2.5-15.el7.i686.rpm

echo "安装包下载完成,开始进行安装"
rpm -ivh curl-7.29.0-59.el7_9.1.x86_64.rpm
rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-44.el7.x86_64.rpm
rpm -ivh keyutils-libs-1.5.8-3.el7.i686.rpm
rpm -ivh libcom_err-1.42.9-19.el7.i686.rpm
rpm -ivh libsepol-2.5-10.el7.i686.rpm
rpm -ivh libverto-0.2.5-4.el7.i686.rpm
rpm -ivh openssl-1.0.2k-21.el7_9.x86_64.rpm
rpm -ivh openssl-devel-1.0.2k-21.el7_9.x86_64.rpm
rpm -ivh pcre-8.32-17.el7.i686.rpm
rpm -ivh pcre-8.32-17.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-17.el7.i686.rpm
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
rpm -ivh  zlib-1.2.7-19.el7_9.i686.rpm
rpm -ivh  zlib-devel-1.2.7-19.el7_9.i686.rpm
rpm -ivh  zlib-devel-1.2.7-19.el7_9.x86_64.rpm
rpm -ivh libselinux-2.5-15.el7.i686.rpm
echo "基础包本地安装成功"
else
echo "基础环境包在线安装成功"
fi
    return 0
}; environment; [ $? -ne 0 ] && exit 1

function install() {
cd $NGINX_DIR && rm -rf $NGINX_DIR/nginx-1.9.9.tar.gz && rm -rf $NGINX_DIR/nginx-1.9.9
wget -c http://iskyinfo.gicp.net:5200/linux-nginx/nginx-1.9.9.tar.gz
tar -xvf nginx-1.9.9.tar.gz  &> /tmp/nginx_install.log
cd $NGINX_DIR/nginx-1.9.9
echo "执行./configure"
       ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module &> /tmp/nginx_install.log
    if [[ $? -ne 0 ]]; then
        return 1
    else
        echo "执行make"
        make &> /tmp/nginx_install.log
                        echo "执行make install"
        make install &> /tmp/nginx_install.log
        if [[ $? -ne 0 ]]; then
            return 1
        fi
                        echo "nginx安装成功"
           return 0
    fi

}; install; [ $? -ne 0 ] && exit 1


function optimize() {
   echo "nginx根据cpu核数配置启动线程"
   processor=`cat /proc/cpuinfo | grep "processor" | wc -l`
    sed -i "s/^w.*;$/worker_processes  ${processor};/g" /usr/local/nginx/conf/nginx.conf

        echo "nginx设置开机启动"
    touch /usr/lib/systemd/system/nginx.service
cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target
EOF
systemctl enable nginx.service

}; optimize; [ $? -ne 0 ] && exit 1

function run() {
systemctl restart nginx.service
systemctl status nginx.service
echo "nginx启动成功"
}; run; [ $? -ne 0 ] && exit 1

function check() {
#用时
endtime=`date +'%Y-%m-%d %H:%M:%S'`
start_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
    content=$"nginx deployment 完成, 本次安装用时: "$((end_seconds-start_seconds))"秒。当前时间:$(date "+%Y-%m-%d %H:%M:%S")"
    echo $content > /usr/local/nginx/html/index.html
    echo -n "访问验证Index.html: "; curl http://localhost
}; check

TAG:

 

评分:0

我来说两句

Open Toolbar