你好!
1.库路径的指定:
在nginx.conf(nginx配置文件)中可以配置,示例如下:
http {
lua_package_path '/home/nginx/lua/lualib/?.lua’;
lua_package_cpath '/home/nginx/luaclib64/?.so;;';
}
实际搜索的文件是把问号替换成模块名。如:require('LuaXml') 将搜索/home/nginx/lualib/LuaXml.lua
(1)多个路径用分号分隔。
(2)两个分号中间一个空格代表默认路径 如:lua_package_cpath '/home/nginx/luaclib64/?.so;;';
(3)lua_package_path 配置的是lua文件路径,lua_package_cpath 配置的是so的路径,不能互换。
2.错误原因
跟据报错,你的nginx是64位的,你的LuaXML_lib是32位的,你需要在64位机器下编译个LuaXML_lib。
------------------ 原始邮件 ------------------
发件人: "iteamsun";<ite...@gmail.com>;
发送时间: 2016年7月20日(星期三) 下午5:50
收件人: "openresty"<openresty@googlegroups.com>;
主题: [openresty] Re: 【求助】关于使用LuaXml模块的报错
你好:
LuaXML,在机器已经编译成功,版本是5.1.7,编译成功了,当前目录是能够测试的,但是换个目录就没法测试了,问一下,LuaXML的lua文件及so文件放在什么位置,为了让openresty在网页端请求识别LuaXML,做了一大堆软连接,openresty目录下,以及系统/usr/lib64下都没有用,甚至nginx下也没有用。
在 2012年9月7日星期五 UTC+8下午5:06:46,二师兄写道:
下载了luaxml模块, 主要包括LuaXml.lua 文件和LuaXML_lib.so 文件。
下面是配置:
location /test/ {
content_by_lua '
require("LuaXml");
local x = xml.new("root");
x:append("child")[1] = 123;
print(x);
';
}
访问时候报错:
2012/09/07 17:05:41 [error] 13098#0: *41897 lua handler aborted:
runtime error: error loading module 'LuaXML_lib' from file '/usr/local/
lib/lua/5.1/LuaXML_lib.so':
/usr/local/lib/lua/5.1/LuaXML_lib.so: wrong ELF class:
ELFCLASS32
stack traceback:
[C]: ?
[C]: in function 'require'
/home/nginx/conf/lua_modules/LuaXml.lua:1: in main chunk
[C]: in function 'require'
求助。。。
--