【Shell脚本】Linux安装Nginx以及开机自启

简介: 【Shell脚本】Linux安装Nginx以及开机自启

一、Linux安装Nginx脚本

1、把编写好的安装Nginx脚本放置到nginx.sh文件中

#在/home/admin路径下新建一个.sh文件
touch nginx.sh
#给该文件提升权限
chmod +x nginx.sh
#进入到nginx.sh文件中
vi nginx.sh
#保存退出,按ESC退出,输入:wq保存
:wq

2、在检查网络的时候,这里的IP地址,填写的需要安装Nginx服务器的IP地址

3、这里的端口号可按照自己的需要进行修改

4、编写nginx脚本内容

#!/bin/bash
# nginx安装包链接
nginx_url="http://nginx.org/download/nginx-1.24.0.tar.gz"
# 下载包存放路径
path="/usr/local"
# 安装路径
int_path="/usr/local/nginx"
# 首先检查网络
ping -c 1 81.70.2.8 > /dev/null 2>&1
if [ $? -eq 0 ];then
    echo "检测网络正常!"
    # 配置阿里源
    read -p "配置阿里源输入1,任意键跳过配置:" number
    case "$number" in
        1)
          echo "正在配置阿里源..."
          yum -y install vim
          yum -y install wget
          yum -y install tar
          yum install -y pcre-devel openssl-devel gcc curl
          echo "阿里源配置已完成!"
        ;;
        *)
        echo "已跳过配置阿里源!"
    esac
    # 安装依赖包
    echo "正在安装依赖包..."
    yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel wget > /dev/null 2>&1
    if [ $? -eq 0 ];then
        echo "依赖包安装已完成!"
        # 下载Nginx包
        echo "正在下载安装包和解压安装操作..."
        # 创建文件夹,解压安装
        mkdir $path && cd /usr/local
    wget $nginx_url -P $path > /dev/null 2>&1
    #mkdir $int_path && cd $int_path
        nginx_pack=`echo $nginx_url | awk -F '/' '{print $NF}'`
    tar -zxvf $path/$nginx_pack -C ./
        # 编译安装
        nginx_path=`echo $nginx_pack |awk -F '.' '{print $1"."$2"."$3}'`
        cd $nginx_path && ./configure > /dev/null 2>&1
        make > /dev/null 2>&1
        make install  > /dev/null 2>&1
    # 设置防火墙规则
    echo "设置防火墙规则"
    firewall-cmd --add-port=80/tcp --permanent
    firewall-cmd --reload
        echo "Nginx 安装已完成!"
        echo -e "#####################################\n启动Nginx: $int_path/sbin/nginx\n停止Nginx: $int_path/sbin/nginx -s stop\n重载Nginx: $int_path/sbin/nginx -s reload\n检查Nginx: $int_path/sbin/nginx -t\n#####################################"
    else
        echo "依赖包安装失败,请检查yum源或者网络问题!!!"
        exit 1
    fi   
else
    echo "检测网络连接异常,请检查网络再操作!"
    exit 1
fi

5、进入到安装好的nginx路径下

#切换到安装好的nginx路径下
cd /usr/local/nginx/

6、运行nginx

#执行configure文件
./configure
#运行make命令
make
#运行make install命令
make install
#运行nginx
./nginx/sbin/nginx

7、开放端口号

#查询端口号是否开启
firwall-cmd --add-port=端口号/tcp
#如果没开启的话,则开启端口号
firwall-cmd --zone=public --add-port=端口号/tcp --permanent
#重启防火墙
firwall-cmd --reload

二、Nginx开机自启

1、切换到/etc/init.d路径下创建nginx脚本

#创建脚本
touch nginx

2、进入nginx脚本中进行编写

#!/bin/bash
# chkconfig: 2345 32 62  #按照开机启动模板设定,32序列号 62系统等级
# description: Activates/Deactivates all network interfaces configured to \
[ -f /etc/init.d/functions ] &&  . /etc/init.d/functions  #引用系统函数库
#nginx和Pidfile要修改成自己安装的路径
nginx=/xxx/xxx/sbin/nginx
Pidfile=/xxx/xxx/logs/nginx.pid
oldboy(){
    RETVAL=$?
    if [ $RETVAL -eq 0 ];then
      action "Nginx is $1" /bin/true
    else
      action "Nginx is $1" /bin/false
    fi
}
##no.1 定义启动模块
Start(){
  if [ -f $Pidfile ];then
    echo "Nginx is running"
   else
    $nginx
    oldboy started
  fi   
  return $RETVAL
}
##no.2 定义关闭模块
Stop(){
  if [ ! -f $Pidfile ];then
    echo "nginx in not running"
    else
    $nginx -s stop
    oldboy stoped
  fi
}
##no.3 定义重新加载模块
Reload(){
  if [ ! -f $Pidfile ];then
    echo "Cat't open $Pidfile ,no such file or directory"
  else
    $nginx -s reload
    oldboy reloaed 
  fi
}
case "$1" in
    start)
    Start
;;
    stop)
    Stop
;;
    reload)
    Reload
;;
    restart)
    Stop
    sleep 2
    Start
;;
    *)
    echo "Usage: sh $0 {start|stop|reload|restart} "   
    exit 1
esac
exit   $RETVAL

3、:wq保存退出后,更改脚本权限

#更改脚本权限
chmod 777 nginx

4、将nginx服务加入chkconfig管理列表

#将nginx服务加入chkconfig管理列表
chkconfig --add nginx

5、设置nginx开机自启

#设置nginx开机自启
chkconfig nginx on
#想关闭开机自启命令
chkconfig nginx off

6、运行nginx

#运行nginx
service nginx start
#结束服务
service nginx stop
#重启服务
service nginx restart
#重载配置文件
service nginx reload
#查看状态
service nginx status

三、知识提升

1、chkconfig --add <service_name>中的chkonfig命令是什么意思?

chkconfig是一个用于管理Linux系统中服务的命令。它允许您配置在系统启动时自动启动或停止的服务。

具体来说,chkconfig命令用于添加、删除或更改服务的启动级别。启动级别是指在系统启动过程中服务的运行顺序和优先级。

使用chkconfig命令,您可以将服务添加到系统的服务列表中,并指定在特定运行级别下是否自动启动该服务。

2、如果不把nginx服务加入到chkconfig管理列表,重启服务器后,nginx开机自启会成功吗?

如果没有将Nginx服务添加到chkconfig管理列表中,重启服务器后,Nginx将不会自动启动。

chkconfig是用于管理Linux系统中的服务的工具,它可以配置服务在系统启动时是否自动启动。通过将Nginx服务添加到chkconfig管理列表中,就可以告诉系统在启动时自动启动Nginx

如果没有将Nginx添加到chkconfig管理列表中,仍然可以手动启动Nginx服务,但它不会在系统启动时自动启动。每次重启服务器后,都需要手动运行启动命令来启动Nginx

3、/etc/init.d和chkconfig二者的区别

/etc/init.d和chkconfig是Linux系统中用于管理和控制系统服务的两个不同的概念和工具。

  1. /etc/init.d目录:/etc/init.d目录是存放系统服务启动脚本的地方。这些启动脚本通常以.d结尾,用于控制和管理系统服务的启动、停止和重启。当系统启动时,系统会检查/etc/init.d目录中的启动脚本,并根据需要运行这些脚本来启动相应的服务。同样,当系统关闭或重启时,系统也会运行这些脚本来停止相应的服务。每个服务的启动脚本通常包含启动、停止、重启和状态检查等功能。
  2. chkconfig命令:chkconfig是一个命令行工具,用于管理和配置系统服务的启动状态。它可以用于添加、删除、启用或禁用服务的自动启动。chkconfig命令可以将服务添加到系统的启动管理列表中,以便在系统启动时自动启动该服务。它还可以设置服务在各个运行级别中的启动状态(开启或关闭)。使用chkconfig命令,您可以查看系统中已添加到启动管理列表的服务,并查看它们在各个运行级别中的启动状态。
  3. 因此,/etc/init.d是存放系统服务启动脚本的目录,而chkconfig是用于管理和配置系统服务的启动状态的命令行工具。/etc/init.d中的启动脚本通常由chkconfig命令管理,并通过chkconfig命令将服务添加到系统的启动管理列表中。

4、/etc/init.d和chkconfig二者的关系

1./etc/init.d中的启动脚本通常由chkconfig命令管理,并通过chkconfig命令将服务添加到系统的启动管理列表中

2.chkconfig管理列表中有/etc/init.d路径下的可执行脚本


相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
打赏
0
0
0
0
1
分享
相关文章
|
22天前
|
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
98 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
71 21
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
160 25
|
9天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
40 0
|
1月前
|
Linux 安装 Qualcomm ® SnapdragonTM Profiler
通过本文的详细介绍,您应该已经成功在 Linux 系统上安装并配置了 Qualcomm® Snapdragon™ Profiler,并能够连接 Android 设备进行性能分析。Snapdragon Profiler 提供了丰富的工具和功能,可以帮助开发者深入了解应用程序的性能瓶颈,从而进行优化。希望本文能对您有所帮助,让您在开发过程中更高效地使用 Snapdragon Profiler 进行性能分析和优化。
96 10
|
1月前
|
Linux安装svn并启动
Linux安装svn并启动
65 10
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
245 25
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
114 20

热门文章

最新文章