By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.
甲骨文ARM架构下安装宝塔面板及防火墙 - 让宝塔面板的 Nginx 在 ARM 下也能支持 LuaJIT
2021-11-17 10:30:26    353    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

353 人读过
文档导航