当前位置:首页 > Linux vps > 正文

甲骨文ARM架构安装宝塔Nginx防火墙及网站监控报表

许本聪 Linux vps 389阅读

甲骨文ARM架构安装宝塔Nginx防火墙及网站监控报表  第1张

前言

目前ARM架构机型在宝塔面板安装Nginx防火墙和网站监控报表,会出现冲突,不能正常使用; 出现的错误代码包括但不限于以下两种: unknown directive "lua_shared_dict" PANIC: unprotected error in call to Lua API (bad light userdata pointer) 其主要原因是因为宝塔面板在安装Nginx时,判断机器架构为ARM就会直接忽略编译和加载LuaJIT选项; 解决方法就是重新为Nginx编译加载LuaJIT选项,而ARM架构需要LuaJIT版本在2.1以上才能编译成功; 本方法在甲骨文ARM架构下测试,其它服务商的ARM架构应该同样适用,Nginx版本测试过1.181.20; 另外在宝塔面板首次安装Nginx时务必使用编译安装,极速安装可能会出现错误;

  • 测试时间:2021-11-06

  • 测试环境:Ubuntu 20.04

  • 宝塔版本:7.7.0

  • 插件版本:Nginx防火墙 8.9.2 / 网站监控报表 6.2

  • 温馨提醒:其它系统及版本未进行测试,请自行验证,请勿在生产环境下尝试;


创建脚本

/www/server/panel/install目录下分别新建名为nginx_prepare.shnginx_configure.pl两个文件; 并在两个文件中分别填写如下代码:

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*


nginx_configure.pl

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

然后将这两个文件设置权限为600,并将所有者设置为root;


编译安装

SSH终端输入以下代码(清理脚本换行符,避免编译安装失败):

 sed -i 's/\r//g' /www/server/panel/install/nginx_prepare.sh


SSH终端输入以下代码开始更新Nginx并按脚本加载LuaJIT选项:

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

代码中的Nginx版本号需要改为你机器已经安装的Nginx版本1.18.1即为1.18 然后等待更新完成即可;


安装插件

注意:需要首先安装 “网站监控报表” 等待安装完成后再安装 “Nginx防火墙” ; 原因是 “Nginx防火墙” 需要使用 “lua-cjson" 但在ARM下更新 "Nginx" 时直接编译 "lua-cjson" 会失败,具体原因没有深究; 而安装网站监控报表时会默认使用 "luarocks" 来安装 "lua-cjson" 这就直接解决了此问题; 当然你也可以先安装 "luarocks" 在使用 ”luarocks install lua-cjson“ 命令来安装 ”lua-cjson“ ; 由于博主两个插件都要使用,所以就没单独测试了,需要的可以自行测试;


版权声明:本文由 @许本聪 发布在 老许Blog,转载请注明出处!

更新时间 2022-02-21

有话要说...

搜索

最新文章