0

0

宝塔面板如何配置Lua脚本支持?在宝塔面板Nginx中集成自定义Lua

P粉602998670

P粉602998670

发布时间:2026-03-16 20:07:48

|

754人浏览过

|

来源于php中文网

原创

需先确认Nginx是否编译lua-nginx-module,若未集成则推荐安装宝塔内置OpenResty;否则需手动编译模块、正确配置lua_package_path/cpath路径、放置cjson.so等依赖,并启用调试模式验证。

宝塔面板如何配置lua脚本支持?在宝塔面板nginx中集成自定义lua

如果您已在宝塔面板中部署 Nginx,但尝试运行 Lua 脚本时提示 module 'cjson' not foundunknown directive "lua_package_path",说明 Nginx 未正确加载 Lua 支持模块或路径配置缺失。以下是实现 Lua 脚本在宝塔 Nginx 中稳定运行的多种配置方式:

一、确认 Nginx 是否已编译 Lua 模块

宝塔默认 Nginx(非 OpenResty)不内置 lua-nginx-module,需验证是否启用。该步骤用于排除“模块未编译”导致的指令不可用问题。

1、执行命令查看 Nginx 编译参数:
nginx -V 2>&1 | grep -o with-http_lua_module

2、若输出为空,则表示当前 Nginx 未集成 Lua 模块,必须切换方案;若输出为 with-http_lua_module,则继续后续配置。

3、检查 Nginx 配置中是否存在重复的 lua_package_path 指令:执行 grep -r "lua_package_path" /www/server/nginx/conf/,如发现多处定义,需保留唯一一处,否则将导致 Nginx 无法重启。

二、使用宝塔内置 OpenResty 替代标准 Nginx

OpenResty 是集成了 LuaJIT 和 lua-nginx-module 的增强版 Nginx,无需手动编译模块,兼容性与稳定性更高,适合生产环境快速启用 Lua 能力。

1、登录宝塔面板,在【软件商店】中搜索 OpenResty,安装对应版本(推荐 1.21.4.x 或以上)。

2、安装完成后,进入【网站】→【设置】→【配置文件】,确认 server 块外层已自动包含如下全局配置:
lua_package_path "/www/server/nginx/lib/lua/?.lua;/www/server/nginx/waf/?.lua;;";
lua_package_cpath "/www/server/nginx/lib/lua/?.so;;";

3、在站点配置中添加 Lua 执行指令,例如:
location /api {
  content_by_lua_block { ngx.say("Lua is working") }
}

4、保存并重载 Nginx 配置,访问 /api 验证响应。

三、手动为标准 Nginx 添加 Lua 支持(编译方式)

适用于必须使用宝塔原生 Nginx(非 OpenResty)且具备服务器编译权限的场景。此方式需下载源码并重新编译,确保 lua-nginx-module 与 NDK(ngx_devel_kit)同时加载。

1、安装依赖:
yum install gcc-c++ pcre-devel openssl-devel zlib-devel -y(CentOS)或 apt-get install build-essential libpcre3-dev libssl-dev zlib1g-dev -y(Ubuntu/Debian)

2、下载并解压 Nginx 源码(版本需与宝塔当前 Nginx 一致,可通过 nginx -v 查看):

3、下载 NDK 与 lua-nginx-module:
cd /usr/local/src
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.1.tar.gz
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.22.tar.gz
tar zxvf v0.3.1.tar.gz
tar zxvf v0.10.22.tar.gz

‎ Gemini Storybook
‎ Gemini Storybook

Google Gemini推出的AI绘本生成工具

下载

4、进入 Nginx 源码目录,执行编译命令(注意替换原有 configure 参数):
./configure --add-module=/usr/local/src/ngx_devel_kit-0.3.1 --add-module=/usr/local/src/lua-nginx-module-0.10.22 [原有参数...]
make && make install

5、备份原 nginx 二进制文件,复制新编译的 nginx 到 /www/server/nginx/sbin/nginx,并执行 nginx -t 验证配置。

四、配置 Lua 全局路径与模块加载

即使模块已编译,若 Lua 脚本 require 失败,大概率因 lua_package_pathlua_package_cpath 未正确定义,导致无法定位 .lua 或 .so 文件。

1、创建 Lua 模块存放目录:
mkdir -p /www/server/nginx/lib/lua

2、将已编译好的 cjson.so(参考知识库中 lua-cjson 编译流程)拷贝至该目录:
cp /usr/local/src/lua-cjson/cjson.so /www/server/nginx/lib/lua/

3、在 /www/server/nginx/conf/nginx.conf 的 http 块顶部添加两行(确保仅出现一次):
lua_package_path "/www/server/nginx/lib/lua/?.lua;;";
lua_package_cpath "/www/server/nginx/lib/lua/?.so;;";

4、测试 Lua 加载能力:新建 /www/server/nginx/lib/lua/test.lua,内容为 return { ok = true };在 location 中执行:
content_by_lua_block { local t = require("test") ngx.say(t.ok) }

五、启用 Lua 代码缓存与调试模式

Nginx 默认开启 Lua 代码缓存以提升性能,但在开发阶段会导致修改后不生效,需临时禁用以便快速验证逻辑;同时启用错误日志可捕获 require 或语法异常。

1、在站点配置的 server 块内添加:
lua_code_cache off;

2、在 http 块中确保错误日志级别足够高:
error_log /www/wwwlogs/nginx_error.log warn;

3、编写测试脚本 /www/wwwroot/your-site/lua/hello.lua,内容为:
ngx.header.content_type = "text/plain"
ngx.say("Hello from Lua at ", os.date())

4、在 location 中调用:
location /hello { content_by_lua_file /www/wwwroot/your-site/lua/hello.lua; }

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

248

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

245

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

739

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3619

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

57

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

74

2026.01.13

chatgpt使用指南
chatgpt使用指南

本专题整合了chatgpt使用教程、新手使用说明等等相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.03.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号