IT小能手 影视后期
电视民工 资深站长

解决宝塔面板提示Nginx配置规则错误:unknown directive “lua_shared_dict”

重启nginx的话会提示如下错误:

到这个错误真的是有点懵圈了,不用问,百度上是没有这个问题的解决方法的,宝塔论坛也去发帖求助,官方的运维很显然还没意识到这个bug,只给出了一个很笼统的解决方案,试了一下,不出所料的什么用都没有。这篇文章就来记录一下如何解决这个问题的,如果有相同问题的童鞋可以参考。

1、错误提示
这个bug应该是仅有新安装宝塔最新版本7.9.2,才有可能会碰到。具体的bug就是安装宝塔防火墙不论是专业版防火墙还是免费防火墙以及安装网站监控报表都会提示,文章开头的错误。顺便放一张图:

2、查找原因

1)官方给我出的解决方案如下,当然这个方法可能是有用的。

2)问题的症结所在

这个问题的具体原因是缺少两个nginx模块:ngx_devel_kit和lua_nginx_module,我们只要把这两个模块编译到nginx里面就可以解决。不过你最好用命令:nginx -V 来检查一下你的nginx扩展。在测试环境用这个命令来检查发现确实是少了这两个模块。

3、解决问题

既然找到了症结所在,那么我们只要开始编译安装这两个模块即可,具体的方法如下:

1)用命令来查看自己的nginx版本号,这一这里的v是小写,命令如下:

2)到/www/server/nginx/src这个目录下看看ngx_devel_kit和lua_nginx_module这两个模块在不在,宝塔默认是编译好的,也就是7.9.2太奇葩。一般都是有的,如图:

3)修改nginx.sh

宝塔面板找到路径:/www/server/panel/install找到文件nginx.sh 打开开始编辑。大概在278行,我们添加 --add-module=srclib/ngx_devel_kit --add-module=srclib/lua_nginx_module 不会添加看代码,标注下划线的地方就是我们要添加的2个模块:

4)因为默认是已经有这两个模块了,所以我们直接编译即可,我们回到ssh客户端使用命令开始编译,根据自己的版本,因为测试环境这台服务器安装的版本是nginx1.20.2所以用编译命令如下:

5)编译完成后,用命令:nginx -V 即可查看到模块已经编译完成,注意这里的“v”是大写。

4、最后

这两个模块编译完成之后,我们再次测试后,即可正常使用。



微信扫描下方的二维码阅读本文

 收藏 (0) 打赏

您可以选择一种方式打赏本站

支付宝扫一扫打赏

微信钱包扫描打赏

1、本站名称:LonHowe Blog
2、本站永久网址:https://lonhowe.cn
3、本站部分文章内容可能来源于网络(除特别注明原创外),仅供大家学习与参考,如需转载请注明出处。如有侵权,请给我留言联系我们进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布任何违法的相关信息,访客如发现请给我留言向我们举报,同时我们会保留相关记录,必要时上报相关部门。
6、本站部分文章存在时效性,若有错误或已失效,请给我留言联系我们,我们会第一时间更新。
文章名称:《解决宝塔面板提示Nginx配置规则错误:unknown directive “lua_shared_dict”》
文章链接:https://lonhowe.cn/5257.html
分享到: 生成海报
一个爱折腾的狮子座少年。

热门文章

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

IT、数码、科技、资源、教程、建站、站长、源码、生活、杂谈

关于本站服务条款
切换注册

登录

点击按钮进行验证

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活

点击按钮进行验证