×

在 OpenResty 中指定多个 Lua 模块路径

Falcon 2024-09-18 views:
自动摘要

正在生成中……

如果你想在 OpenResty 中指定多个 Lua 模块路径,可以通过 lua_package_path 指令,并用分号(;)分隔多个路径。具体格式如下:

lua_package_path "/path/to/first/module/?.lua;/path/to/second/module/?.lua;;";
  • 每个路径用分号分隔
  • 最后加上 ;;,这表示在查找模块时会默认添加 Lua 的内置模块搜索路径。这个部分建议保留。

示例:

假设你有两个 Lua 模块路径:

  1. /opt/lua-resty-limit-traffic/lib/
  2. /usr/local/share/lua/5.1/

可以这样配置:

lua_package_path "/opt/lua-resty-limit-traffic/lib/?.lua;/usr/local/share/lua/5.1/?.lua;;";

这样 OpenResty 会先从 /opt/lua-resty-limit-traffic/lib/ 中查找 Lua 模块,如果找不到再去 /usr/local/share/lua/5.1/ 中查找,最后默认查找 Lua 内置路径。

其他相关指令:

  • lua_package_cpath:用于设置 C 库的搜索路径,类似于 lua_package_path,但用于加载 .so 文件等 C 模块。
lua_package_cpath "/path/to/first/cmodule/?.so;/path/to/second/cmodule/?.so;;";

这两个指令可以一起使用,分别指定 Lua 模块和 C 模块的加载路径。

本文收录于