Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 找不到模块插槽lua_Nginx_Lua_Redis - Fatal编程技术网

Nginx 找不到模块插槽lua

Nginx 找不到模块插槽lua,nginx,lua,redis,Nginx,Lua,Redis,我正在尝试使用lua从nginx访问redis值。当我在命令行上执行lua文件时,一切都正常,我能够读写redis的值。但当我试图通过访问写入access_by_lua指令的位置从nginx执行相同的文件时,错误日志文件中记录了以下错误 no field package.preload['socket'] no file '/home/sivag/redis/redis-lua/src/socket.lua' no file 'src/socket.lua' no file '/home/si

我正在尝试使用lua从nginx访问redis值。当我在命令行上执行lua文件时,一切都正常,我能够读写redis的值。但当我试图通过访问写入access_by_lua指令的位置从nginx执行相同的文件时,错误日志文件中记录了以下错误

no field package.preload['socket'] 
no file '/home/sivag/redis/redis-lua/src/socket.lua'
no file 'src/socket.lua'
no file '/home/sivag/lua/socket.lua'
no file '/opt/openresty/lualib/socket.so'
no file './socket.so'
no file '/usr/local/lib/lua/5.1/socket.so'
no file '/opt/openresty/luajit/lib/lua/5.1/socket.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

这是什么原因?我如何解决这一问题?

由于代码执行命令
require(“socket”)
此命令将在多个目录中搜索具有该名称的文件。如果成功,内容将作为Lua代码执行。如果不成功,您将收到错误消息

要解决此问题,您必须在需要文件之前,将包含文件的路径添加到系统变量LUA_path,或者将其添加到全局表
package.path
。 Lua会取代吗?使用您为require()指定的名称

比如说

package.path = package.path .. ";" .. thisPathContainsTheLuaFile .. "?.lua"
请阅读:


在我的例子中,我只需要安装
lua socket
包,因为socket库并不像在其他一些语言中那样内置在默认的lua安装中。

在深入研究之后,我以同样的方式解决了这个问题。不过,非常感谢你的回答。