当前位置:论坛首页 > Linux面板 > 讨论

【待反馈】Nginx安装脚本安装某些版本Nginx时编译lua-cjso

发表在 Linux面板4 天前 [复制链接] 4 86

Linux面板的Nginx安装脚本安装某些版本Nginx时Install_cjson函数部分编译lua-cjson存在问题首先的报错的内容是找不到 Lua 开发头文件(lua.h)
1.png
不说废话,有问题的地方在:
下载 (1).png
安装某些Nginx版本的时候脚本装的是LuaJIT2.1
但Install_cjson函数$download_Url/install/src/lua-cjson-2.1.0.tar.gz下载的lua-cjson源码包中的Makefile编译文件中指定用了LuaJIT2.0...
下载 (2).png
修复方法:
1.在脚本的Install_LuaJIT2函数里先设置一下环境变量:

  1. export LUAJIT_LIB=/usr/local/lib
  2. export LUAJIT_INC=/usr/local/include/${LUAJIT_INC_PATH}/
复制代码

下载 (3).png
2.修改$download_Url/install/src/lua-cjson-2.1.0.tar.gz下载的lua-cjson源码包中的 Makefile 编译文件:
Makefile:21 Line

  1. LUA_INCLUDE_DIR =   $(PREFIX)/include/luajit-2.0 改为
  2. LUA_INCLUDE_DIR = $(LUAJIT_INC)
复制代码

调用前面添加的环境变量里的路径作为LUA_INCLUDE_DIR进行编译
这时候继续make会遇到新的 lua-cjson 编译问题
下载 (5).png
这个错误表明在编译 lua-cjson 时 luaL_setfuncs 函数的定义与 LuaJIT 的头文件中的声明冲突了
通常是因为 lua-cjson 的代码与 LuaJIT 的版本不兼容导致的

解决方法:
修改$download_Url/install/src/lua-cjson-2.1.0.tar.gz下载的lua-cjson源码包中的 lua_cjson.c 文件:
lua_cjson.c:1298 Line
static void luaL_setfuncs (lua_State *l, const luaL_Reg *reg, int nup) 部分代码
注释或删除掉
下载 (4).png
再继续编译
下载 (6).png
成功。
所以临时快速解决的话可以直接在nginx.sh的Install_cjson函数里的 cd lua-cjson-2.1.0 逻辑后加上

  1. # 修改 Makefile
  2. sed -i 's|$(PREFIX)/include/luajit-2.0|$(LUAJIT_INC)|g' Makefile
  3. # 修改 lua_cjson.c 文件,注释掉 1298-1310 行
  4. sed -i '1298,1310s/^/\/\//' lua_cjson.c
复制代码

下载 (7).png
使用道具 举报 只看该作者 回复
发表于 4 天前 | 显示全部楼层
这是大佬
使用道具 举报 回复
发表于 3 天前 | 显示全部楼层
这是什么系统呢,大佬?
使用道具 举报 回复 支持 反对
发表于 3 天前 | 显示全部楼层
大炮运维V587 发表于 2025-1-18 15:38
这是什么系统呢,大佬?

我是Centos Stream9 这和系统没什么关系的 这是你们Linux面板编译安装Nginx的脚本 就是这个
https://download.bt.cn/install/0/nginx.sh
你把这个帖子反馈给你们的开发看看就知道我说的是什么了 顺带提一嘴 这个脚本写的乱七八糟的 还有不少问题...
使用道具 举报 回复 支持 反对
发表于 3 天前 | 显示全部楼层
帖子的板块选错了 可以的话帮忙移到BUG提交的Linux里面 这是Bug提交不是讨论
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表