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

解决 Ubuntu 20.04 的 Nginx 在 ARM 下提示 PANIC 问题。

发表在 Linux面板2021-9-1 16:51 [复制链接] 2 3442

本帖最后由 Xeath 于 2021-9-1 17:09 编辑

解决 Ubuntu 20.04 的 Nginx 在 ARM 下提示 PANIC: unprotected error in call to Lua API (bad light userdata pointer) 问题。
先挂一下满嘴脏话的人:https://www.bt.cn/bbs/thread-74476-1-1.html
截屏2021-09-01 下午4.14.45.png

官方已经明确 ARM 不完全兼容,所以:
1、你要么提供环境然后联系官方远程帮忙查看;
2、要么闭嘴去用 x86_64 系统;
3、都用盗版了就别在这里嘴臭。

截屏2021-09-01 下午4.15.24.png



其实这个问题一周前就帮一个人检查过了,再此感谢他提供 ARM 机器给我测试,同时也感谢他多次重置机器验证方法(因我我自己的 ARM 机器已经安装为 CentOS Stream 8 了,不方便改 Ubuntu 测试问题)

截屏2021-09-01 下午4.20.35.png

截屏2021-09-01 下午4.26.13.png

首先,按照下面链接的帖子去添加两个文件。
https://www.bt.cn/bbs/thread-73777-1-1.html
可能存在换行符问题,建议执行下面代码清理换行符。
  1. sed -i 's/\r//g' /www/server/panel/install/nginx_prepare.sh
复制代码
脚本代码里面的 Install_cjson 应该是可以去掉,因为我在他的机器上始终无法编译,即使是最新的代码也无法编译,具体什么原因无法编译就没去研究。
然后是使用编译安装,注意一定是编译安装不是极速安装。极速安装不会调用自定义编译的脚本。
同时极速安装会使用宝塔缓存的源码编译 LuaJIT-2.1.0-beta3,由于目前 2.1.0 还在 beta,并且宝塔缓存的源码并非最新,所以导致 Nginx 出现 PANIC 问题,该用 GitHub 上面最新的源码就可以解决问题。
如果 GitHub 下载比较慢,自己改成 fastgit,速度会快一些。
因为 cjson 一直无法编译,导致防火墙不能正常使用,后来偶然的操作发现安装了报表之后就可以正常使用防火墙,所以我估计是报表里面安装了 cjson。

QQ20210901-0.png

查看了一下日志和安装脚本,最后确认报表会使用 luarocks 安装 lua-cjson。
那就好解决了,自己先安装 luarocks,然后再安装 lua-cjson 就行了。
  1. luarocks install lua-cjson
复制代码
当然你懒的话就直接装一下报表,然后再装防火墙就行。
为什么不早点发?因为 ARM 现在用的人少呀,就没太大必要了,而且发了可能别人会在地下问问题,等 ARM 成熟了,宝塔也会进一步完善 ARM,所以这种问题根本不需要去操心,耐心等待就行了。
ARM 目前的生态还不太好,很多软件都需要使用最新的源码进行编译安装,最简单的就是 LuaJIT 必须是 2.1.0 或以上才可以编译(只是目前还是 beta3),还有 jemalloc 也需要 5.1.0 或以上版本。不过宝塔的缓存的源码部分也太过老旧,比如 xdebug 和 phalcon 不能同时安装,否则 phalcon 部分功能会导致 php-fpm 异常退出,后来我改了 xdebug 升级最新的版本才解决。
使用道具 举报 只看该作者 回复
发表于 2021-9-1 17:02:50 | 显示全部楼层
非常感谢大佬的分享,我们也逐步在兼容ARM架构的机器,软件过多,只能一步一步的慢慢兼容了
使用道具 举报 回复 支持 反对
发表于 2021-12-9 22:05:34 | 显示全部楼层
插眼。小白没搞定- -
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

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

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

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

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

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表