当前位置 : 主页 > 网络编程 > lua >

将其他LUA模块安装到Redis中

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在尝试让Redis允许EVAL( http://redis.io/commands/EVAL)发出HTTP请求. 两个模块:LuaCURL和Luasocket提供此功能. Redis源代码有一个带有附加模块的目录(例如cjson)http://download.redis.io/redis-stable/deps/
我正在尝试让Redis允许EVAL( http://redis.io/commands/EVAL)发出HTTP请求.

两个模块:LuaCURL和Luasocket提供此功能. Redis源代码有一个带有附加模块的目录(例如cjson)http://download.redis.io/redis-stable/deps/lua/src/,我尝试添加luacurl.c但是我收到错误后收到错误.我已经设法编译它启用os.execute – 通过编辑scripting.c – 它允许我运行curl命令,但这是一个糟糕的解决方案.

如何在Redis的Lua中编译HTTP请求?

大概最简单的方法就是拥有一个独立的luasocket.so文件,但我不知道该怎么做.

不用担心,我所需要的只是睡一觉才能有一个清醒的头脑.

我下载了http://files.luaforge.net/releases/luacurl/luacurl并将luacurl.c移动到/ deps / lua / src /文件夹并从第23行编辑

#include <lauxlib.h>

#include "lauxlib.h"

然后在/ deps / lua / src / Makefile(Lua的makefile,而不是Redis的)转到第30行并找到

lua_cjson.o

在它旁边添加“luacurl.o”就像这样

lua_cjson.o luacurl.o

然后在/ src / Makefile(Redis的makefile,而不是Lua的)中更改第54行

FINAL_LIBS=-lm

FINAL_LIBS=-lm -lcurl

最后,确保已安装“yum install curl-devel”然后进行编译.

请记住,在服务器忙于使用Lua脚本时,没有其他客户端可以执行命令.

网友评论