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_LuaJIT
和Install_cjson
,并另起两行分别加上export LUAJIT_LIB=/usr/local/lib
和export 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