优质VPS推荐
VPS优惠 评测

让宝塔面板的 Nginx 在 ARM 下也能支持 LuaJIT

使用甲骨文的ARM 架构服务器,出现了 lua_shared_dict 异常,为了能够用上宝塔,我把机器给重装为 CentOS Stream 8 (ARM) 系统。面板安装完成之后,就是非常常规的安装 Nginx、MySQL、PHP 等运行环境,之后会习惯性安装一下宝塔的一些特色插件,原本这些插件在 x86_64 架构下都没什么问题,但是到了 ARM 下总是有一些小问题,所以就有了这篇总结文章。

宝塔有一个叫「网站监控报表」的插件,我觉得蛮好用的一个插件,所以会习惯性安装到服务器上,但是这个插件在默认情况下会导致 Nginx 出现 unknown directive "lua_shared_dict" 的异常。

根据这个异常信息可以推断应该是 Nginx 没有加载 LuaJIT 导致,进一步查看宝塔的 Nginx 编译脚本(位于 /www/server/panel/install/nginx.sh),也确实发现对于 ARM 架构目前的做法是直接忽略编译和加载。

那既然官方的编译脚本直接忽略了对 LuaJIT 的支持,那就自己动手,丰衣足食。

进一步分析宝塔的编译脚本可以发现,有一处调用自定义脚本的地方。

这个功能应该是和面板上面的编译安装中出现的自定义模块有关,但是我在 7.6.0 下面测试并没有通过,估计是开发漏掉了。关于这个功能的缺失已经通过官方论坛提交给官方确认,但是并不妨碍我们使用这个功能来实现自动编译和加载 LuaJIT。

在 /www/server/panel/install 分别创建名字为 nginx_prepare.sh 和 nginx_configure.pl 的文件,然后将两个文件的权限设置为 600 并且将所有者设置为 root

将以下代码填入 nginx_prepare.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
 
wget -c -O LuaJIT-2.1.zip https://github.com/LuaJIT/LuaJIT/archive/refs/heads/v2.1.zip -T 10
unzip LuaJIT-2.1.zip
if [ -e LuaJIT-2.1 ]; then
    cd LuaJIT-2.1
    make linux
    make install
    export LUAJIT_LIB=/usr/local/lib
    export LUAJIT_INC=/usr/local/include/luajit-2.1/
    ln -sf /usr/local/lib/libluajit-5.1.so.2 /usr/local/lib64/libluajit-5.1.so.2
    if [ `grep -c /usr/local/lib /etc/ld.so.conf` -eq 0 ]; then
        echo "/usr/local/lib" >> /etc/ld.so.conf
    fi
    ldconfig
    cd ..
fi
rm -rf LuaJIT-2.1*
Install_cjson

将以下代码 nginx_configure.pl

--add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module

最后在面板升级一下 Nginx,或者终端执行下面命令重新编译 Nginx,之后就可以愉快使用 LuaJIT 了。

cd /www/server/panel/install && bash install_soft.sh 0 update nginx 1.20

编译之前你需要稍作修改,将 1.20 修改成你需要升级或安装的版本,如果你需要升级则先看下自己的 Nginx 是什么版本,比如 1.18.1 则修改为 1.18,脚本运行完成后 Nginx 的版本也会升级到 1.18 的最新版本。另外,如果你的服务器未安装 Nginx,则需要将 update 修改为 install

最后提醒,插件直接安装一个,否则会出现Nginx其他异常情况,把所有插件卸载,重启Nginx后重新安装一个需要的插件。

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《让宝塔面板的 Nginx 在 ARM 下也能支持 LuaJIT》
文章链接:https://www.tianyanjie.com/1416.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册