天天看點

nginx+lua環境下,自定義lua方法的加載

這次的應用場景是這樣:用PHP向redis寫入了序列化的字元串,然後用Lua讀出來的方式顯示給使用者。由于lua本身沒有反序列化的函數,是以在網上找了一個,然後噩夢開始了……

這個檔案并非按lua module的形式開發,隻是單純的定義了幾個全局方法……

當nginx配置裡lua_code_cache是關閉(開發機)的時候,在lua程式中使用require("modulename")後,再調用其中定義的函數則一點問題都沒有

當開始了lua_code_cache後,第一次通路是正常的,第二次及以後通路則500……看nginx日志,記錄了如下資訊

attempt to call global 'unserialize' (a nil value)
           

後來想使用dofile這種方式加載檔案,結果不知道檔案該放在哪裡……(我是笨蛋)

然後看ngx_lua的wiki,找到一個配置

init_by_lua_file '/path/to/file.lua';
           

于是問題搞定了……

附:ngx_lua的wiki網址:http://wiki.nginx.org/HttpLuaModule

轉載于:https://my.oschina.net/twtfengzi/blog/179464

上一篇: iperf安裝