当前位置: 首页 > news >正文

更新服务器nginx 1.26.1版本

今天在官网下载了nginx1的1.26.1版本,使用gpt的脚本想直接覆盖安装,脚本如下

#!/bin/bash# 设置变量
NGINX_VERSION="1.26.1"
TAR_FILE="nginx-$NGINX_VERSION.tar.gz"
SRC_DIR="nginx-$NGINX_VERSION"# 检查是否存在tar包
if [ ! -f "$TAR_FILE" ]; thenecho "错误: 找不到 $TAR_FILE"exit 1
fi# 停止Nginx服务
echo "停止Nginx服务..."
sudo systemctl stop nginx# 解压tar包
echo "解压 $TAR_FILE..."
tar -zxvf "$TAR_FILE"# 进入源代码目录
cd "$SRC_DIR"# 编译并安装Nginx
echo "编译并安装Nginx..."
./configure --sbin-path=/usr/sbin/nginx #指定安装的位置
make
sudo make install# 启动Nginx服务
echo "启动Nginx服务..."
sudo systemctl start nginx# 检查Nginx版本
echo "Nginx更新完成,当前版本:"
nginx -v# 清理
cd ..
rm -rf "$SRC_DIR"echo "更新过程完成。"

发现脚本执行完还是之前的nginx版本,无奈只能一步一步执行

先备份原来的ningx

mv /usr/sbin/nginx /usr/sbin/nginx.old

首先发现之前的nginx旧的进程没有杀死

随后使用

ps aux | grep nginx
kill -9 进程号

杀死旧的nginx进程,想使用

systemctl restart nginx.service

拉起服务,结果拉不起来

报错:Can‘t open PID file /var/run/nginx.pid (yet?) after start: No such...ctory

我一开始以为存在这个文件就好,从别的服务器上拉了nginx.pid到run目录,结果被进程删掉了,还是报一样的错误

后来查询发现

2021-03-17_nginx脚本启动 cannot open pid file-CSDN博客

原因是Nginx 启动时 PID 文件并未生成,导致文件无法读取

所以在nginx.service 文件中添加

ExecStartPost=/bin/sleep 0.1

让进程等0.1s,生成文件

但是还是报错

最后是修改了nginx.service和nginx.conf中的nginx.pid的路径

vi /你的nginx路径/conf/nginx.conf

发现是nginx.conf中的pid路径是默认不指定的,pid那句话是注释掉的,最后删除注释符,并且指定pid路径。修改完成后重新load一下配置文件。

nginx -t
nginx -s reload

执行reload的时候报错

报错:nginx:[error]invalid PID number "" in "/run/nginx.pid"

运维系列:Nginx报错:nginx: [error] invalid PID number in “/run/nginx.pid“的解决方案_nginx relaod invalid pid num in-CSDN博客

根据我自己的情况对上面文章的内容进行了修改

/usr/sbin/nginx -c /nginx的安装路径/nginx.conf

没有报错。进一步执行

/usr/sbin/nginx -s reload

nginx的配置文件reload成功后,对systemctl进行reload

systemctl daemon-reload

然后restart服务就OK啦

报错:nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_image_filter_module.so" version 1021005 instead of 1027000 in /usr/share/nginx/modules/mod-http-image-filter.conf:1 nginx: configuration file /etc/nginx/nginx.conf test failed

根据文章https://www.cnblogs.com/allay/p/17486284.html

原因:/usr/lib64/nginx/modules/ 内的组件包不兼容

推测是之前的组件包是旧的,有两个解决办法

(1)使用rpm包安装nginx的话是包里自带的,备份好旧的包之后就可以删除

(2)从新的安装位置复制过来(文章中的做法)

我使用方法1,解决了该报错

http://www.lryc.cn/news/406964.html

相关文章:

  • JAVA代码审计JAVA0基础学习(需要WEB基础知识)DAY2
  • SpringBoot整合elasticsearch-java
  • 网络服务与应用
  • Git项目如何配置,如何上传至GitHub
  • Python教程(一):环境搭建及PyCharm安装
  • 神经网络与注意力机制的权重学习对比:公式探索
  • C语言------指针讲解(3)
  • 博客建站 - 常用的公共DNS服务器
  • 用Redisson的RMap做一个简单的购物车示例
  • 「12月·长沙」第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)
  • 传神社区|数据集合集第7期|法律NLP数据集合集
  • 完美解决Ubuntu的MySQL临时文件夹修改调整
  • shell基础编程
  • 近期代码报错解决笔记
  • apache设置ssl代理
  • 数据库中单表的查询(select)
  • Spring源码-BeanFactory类关系层级
  • Electron 结合 Selenium + chromedriver 驱动服务实现浏览器多开
  • 手持式气象检测设备:便携科技,气象探测
  • shell 发送邮件脚本(免密)
  • Web动画(lottie篇)
  • 昇思25天学习打卡营第20天|CV-ResNet50图像分类
  • grep: /etc/mysql/my.cnf: 没有那个文件或目录
  • 养猫好物|宠物空气净化器是不是智商税?靠谱猫毛空气净化器推荐
  • 【CPS出版】2024年智能计算与数据分析国际学术会议(ICDA 2024,9月6日-8)
  • AutoGen框架革新:解锁新闻稿写作的新境界
  • 数据结构之队列详解
  • [渗透测试] 反序列化漏洞
  • C++ 类型转换 包括C风格的转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、模板特化等
  • 等保通过标准