ARM架构下安装宝塔面板及防火墙 - 让宝塔面板的 Nginx 在 ARM 下也能支持 LuaJIT
2021-11-17 10:30:26    67    0    0
emengweb

ARM架构下安装Nginx并增加对LuaJIT的支持

宝塔面板的 nginx 编译脚本目前是直接忽略 ARM 对 LuaJIT 的支持,这导致了许多依赖 lua 语言的插件失效,比如 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

# Debian/Ubuntu
# 手动安装lua5,防止在安装nginx后加载lua引擎出错
apt install lua5* -y

 

 

最后面板升级一下 nginx 或者终端执行以下命令,安装或升级现有Nginx。

其中 1.20 需要修改成您现在在用的 nginx 版本。

Ubuntu 第一次安装 Nginx 务必使用编译安装(或使用下面的安装命令),极速安装不会调用自定义脚本!

# 未安装Nginx,直接安装
cd /www/server/panel/install && bash install_soft.sh 0 install nginx 1.20

# 已安装Nginx,升级
cd /www/server/panel/install && bash install_soft.sh 0 update nginx 1.20

来源:https://www.xeath.cc/2021/08/07/archives-481/

 

Nginx安装或启动失败,提示LuaJIT载入错误

如果安装/升级脚本运行之后仍然提示LuaJIT相关的失败提示,不要慌,还有终极大法:

 

手动安装LuaJIT(OpenResty版本):
建议安装OpenResty版本的LuaJIT2.1.0-beta3,与Tengine搭配性能最佳。

cd ~/
wget -c -O luajit2-2.1-20190530.tar.gz https://github.com/openresty/luajit2/archive/v2.1-20190530.tar.gz -T 5
tar xvf luajit2-2.1-20190530.tar.gz
cd luajit2-2.1-20190530
sudo make
sudo make install

 

安装Lua Cjson(OpenResty版本):

 

cd ~/
wget -O lua-cjson-2.1.0.7.tar.gz https://github.com/openresty/lua-cjson/archive/2.1.0.7.tar.gz -T 5
tar xvf lua-cjson-2.1.0.7.tar.gz
cd lua-cjson-2.1.0.7
sudo make LUA_INCLUDE_DIR=/usr/local/include/luajit-2.1
sudo make install

 

 

准备安装Nginx:
首先登录进入宝塔面板,在面板中安装Nginx,等待30秒左右,再关闭安装任务,此时在/www/server/panel/install目录中出现nginx.sh脚本。

 

修改脚本(以下修改基于宝塔7.6):

 

sudo nano /www/server/panel/install/nginx.sh

查找第177行,改为LuaModVer="0.10.15"
第178行,改为wget -c -O lua-nginx-module-${LuaModVer}.zip https://github.com/openresty/lua-nginx-module/archive/v0.10.15.zip -T 5
第540行,注释掉Install_LuaJITInstall_cjson,并另起两行分别加上export LUAJIT_LIB=/usr/local/libexport LUAJIT_INC=/usr/local/include/luajit-2.1/

 

安装Nginx(Tengine):

Ubuntu 第一次安装 Nginx 务必使用编译安装(或使用下面的安装命令),极速安装不会调用自定义脚本!

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

来源:https://www.flasky.cn/raspberry-pi/install-bt-panel.html

 

上一篇: ARM架构下安装Docker Compose命令

下一篇: DD脚本合集 一键安装Windows/Debian/Ubuntu/CentOS

67 人读过
文档导航