zoukankan      html  css  js  c++  java
  • openresty package.path require 报错

    在文件中

    package.path = '/usr/local/share/lua/5.1/?.lua;/usr/local/openresty/lualib/resty/?.lua;'
    package.cpath = '/usr/local/lib/lua/5.1/?.so;'

    执行
    local mysql = require "mysql" --正确
    local mysql = require "resty.mysql" --报错

    去掉
    package.path = '/usr/local/share/lua/5.1/?.lua;/usr/local/openresty/lualib/resty/?.lua;' 
    package.cpath = '/usr/local/lib/lua/5.1/?.so;'

    local mysql = require "mysql" --报错
    local mysql = require "resty.mysql" --正确

    
    

    package.path 的默认路径指向哪的呢?

    去掉 package.path,在页面中 随便引用一个不存在的模块 比如 require 'aa'

    查看nginx错误日志返回

        no field package.preload['aa']
        no file '/usr/local/openresty/lualib/aa.lua'
        no file '/usr/local/openresty/lualib/aa/init.lua'
        no file './aa.lua'
        no file '/usr/local/openresty/luajit/share/luajit-2.1.0-alpha/aa.lua'
        no file '/usr/local/share/lua/5.1/aa.lua'
        no file '/usr/local/share/lua/5.1/aa/init.lua'
        no file '/usr/local/openresty/luajit/share/lua/5.1/aa.lua'
        no file '/usr/local/openresty/luajit/share/lua/5.1/aa/init.lua'
        no file '/usr/local/openresty/lualib/aa.so'
        no file './aa.so'
        no file '/usr/local/lib/lua/5.1/aa.so'
        no file '/usr/local/openresty/luajit/lib/lua/5.1/aa.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'

    发现  /usr/local/openresty/lualib/aa.lua 难道默认的路径是 /usr/local/openresty/lualib 于是在页面中加入

    package.path = '/usr/local/share/lua/5.1/?.lua;/usr/local/openresty/lualib/resty/?.lua;/usr/local/openresty/lualib/?.lua;'

    package.cpath = '/usr/local/lib/lua/5.1/?.so;'

    ngx.say(package.path)

    执行正确

    新手~~ 勿怪

  • 相关阅读:
    定位公众号页面,跳转之后 vuejs 失效问题
    Java发展前景与职业方向解析
    Java中BIO,NIO,AIO的理解
    Java中最常见的十道面试题
    java策略模式
    细思极恐-你真的会写java吗?
    Java中最常见的十道面试题
    细思极恐-你真的会写java吗?
    如何突破 Java 程序员的分水岭
    35 个 Java 代码性能优化总结
  • 原文地址:https://www.cnblogs.com/wangxusummer/p/4325281.html
Copyright © 2011-2022 走看看