shell 脚本实验 -4 编译安装nginx

79 阅读1分钟

1、脚本文件展示



vim install_nginx.sh

#!/bin/bash
#  install  nginx
if  grep -iq  ubuntu  /etc/os-release
then
apt update  &>/dev/null
apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev -y  &>/dev/null
  if  [ $? -eq 0 ]
   then
    echo -e "\E[1;32m依赖环境安装成功\E[0m"
   else
    echo -e "\E[1;31m依赖环境安装失败\E[0m"
    exit
  fi
elif  grep -qi  centos   /etc/os-release
then
yum install gcc pcre-devel openssl-devel zlib-devel openssl  -y    &>/dev/null
   if  [ $? -eq 0 ]
   then
    echo -e "\E[1;32m依赖环境安装成功\E[0m"
   else
    echo -e "\E[1;31m依赖环境安装失败\E[0m"
    exit
  fi

fi

#  下载安装包
[ -d   /data/ ]  ||  mkdir  /data/
cd   /data

wget https://nginx.org/download/nginx-1.18.0.tar.gz   &>/dev/null
  if  [ $? -eq 0 ]
   then
    echo  -e "\E[1;32m下载成功\E[0m"
   else
    echo  -e "\E[1;31m下载失败\E[0m"
    exit
  fi


tar  xf    nginx-1.18.0.tar.gz
  if  [ $? -eq 0 ]
   then
    echo  -e  "\E[1;32m解压成功\E[0m"
   else
    echo  -e  "\E[1;31m解压失败\E[0m"
    exit
  fi

cd  nginx-1.18.0


#编译安装
./configure   --prefix=/apps/nginx     &>/dev/null
make -j2         &>/dev/null
make  install    &>/dev/null

#准备service  文件

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/logs/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   /bin/

systemctl  daemon-reload

systemctl   start  nginx

 if  [ $? -eq 0 ]
   then
    echo  -e "\E[1;32m启动成功\E[0m"
   else
    echo  -e  "\E[1;31m启动失败\E[0m"
    exit
  fi


2、执行展示



[root@localhost opt]# bash install_nginx.sh 
依赖环境安装成功
下载成功
解压成功
启动成功
[root@localhost opt]# systemctl status nginx.service 
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2025-04-22 15:25:42 CST; 1min 40s ago
     Docs: http://nginx.org/en/docs/
  Process: 16212 ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 16214 (nginx)
   CGroup: /system.slice/nginx.service
           ├─16214 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
           └─16215 nginx: worker process

422 15:25:42 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
422 15:25:42 localhost.localdomain systemd[1]: Started nginx - high performance web server.
[root@localhost opt]#