宝塔面板的 Nginx 编译脚本直接忽略 ARM 对 LuaJIT 的支持,这导致了许多依赖 Lua 语言的插件失效,例如 Nginx 防火墙、网站监控报表。
先决条件
需要 Debian 11 系统,Debian 10 无法解决;其他系统未测试!
卸载 Nginx 和防火墙插件
卸载 Nginx 和防火墙插件,网站不受影响,然后再运行下面命令
cat>/www/server/panel/install/nginx_prepare.sh<<EOL
#!/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
EOL
sed -i 's/\r//g' /www/server/panel/install/nginx_prepare.sh
cat>/www/server/panel/install/nginx_configure.pl<<EOL
--add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module
EOL
安装 Lua 5
apt install lua5* -yapt install lua5* -y
安装 Nginx
cd /www/server/panel/install
#1.21 代表 Nginx 版本
bash install_soft.sh 0 install nginx 1.21
安装防火墙
已经安装好 Lua 了,可以去宝塔商店安装防火墙和监控报表了