openresty无法使用require

发布于 2022-09-04 20:54:11 字数 2422 浏览 23 评论 0

不使·access_check.lua的时候,程序运行正常,使用就会出现错误。
环境使用了dockeropenresty/openresty官方镜像。

nginx.conf配置如下:

worker_processes  1;
error_log logs/error.log;
events {
    worker_connections 1024;
}

http {
    lua_package_path "lua/?.lua;app/?.lua";
    lua_code_cache off;

    server {
        listen 6699;
        charset utf-8;
        #lua_need_request_body on;

        location / {
            default_type text/html;

            content_by_lua_block {
                ngx.say("hello fatrbaby")
            }
        }

        location ~ ^/api/([-_a-zA-Z0-9/]+) {
            access_by_lua_file  lua/access_check.lua;
            content_by_lua_file lua/$1.lua;
        }
    }
}

access_check.lua代码如下:

local validator = require("lib.validator")

local args = ngx.req.get_uri_args()

if not validator.is_number(args.a, args.b) then
    ngx.exit(ngx.HTTP_BAD_REQUEST)
    return
end
ngx.print(package.path)

错误日志如下:

2017/04/26 09:11:34 [error] 216#216: *1 lua entry thread aborted: runtime error: /usr/local/var/learn/lua/access_check.lua:1: module 'lib.validator' not found:
    no field package.preload['lib.validator']
    no file 'lua/lib/validator.lua'
    no file 'app/lib/validator.lua'
    no file '/usr/local/openresty/site/lualib/lib/validator.so'
    no file '/usr/local/openresty/lualib/lib/validator.so'
    no file './lib/validator.so'
    no file '/usr/local/lib/lua/5.1/lib/validator.so'
    no file '/usr/local/openresty/luajit/lib/lua/5.1/lib/validator.so'
    no file '/usr/local/lib/lua/5.1/loadall.so'
    no file '/usr/local/openresty/site/lualib/lib.so'
    no file '/usr/local/openresty/lualib/lib.so'
    no file './lib.so'
    no file '/usr/local/lib/lua/5.1/lib.so'
    no file '/usr/local/openresty/luajit/lib/lua/5.1/lib.so'
    no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
coroutine 0:
    [C]: in function 'require'
    /usr/local/var/learn/lua/access_check.lua:1: in function </usr/local/var/learn/lua/access_check.lua:1>, client: 172.17.0.1, server: , request: "GET /api/add?a=1&b=6 HTTP/1.1", host: "localhost:6699"

项目目录结构如下:

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荒路情人 2022-09-11 20:54:11

已经解决了这个问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文