Ich programmiere jetzt in Lua mit Nginx. Ich schreibe meine Lua-Datei und lege sie in ein Verzeichnis in /usr/local/nginx/lua
. Dann in nginx.conf
ich einen Ort schreiben, wieLua's Paketpfad in Nginx
location /lua {
lua_need_request_body on;
content_by_lua_file lua/test.lua;
}
Wenn ich auf diese Position durch Nginx wird das Lua Script ausgeführt werden.
In einer Lua-Datei, ein in der Regel Ihre eigenen Lua-Modul enthalten kann, und geben Sie den Suchpfad
common_path = '../include/?.lua;'
package.path = common_path .. package.path
Gemeinsam Lua-Programmierung, ist ein relativer Pfad zu meiner Lua-Datei relativ.
Aber mit Nginx sind die relativen Pfade relativ zu dem Verzeichnis, in dem ich Nginx starte.
Wie, ich bin in /usr/local/nginx
und sbin/nginx
ausführen, dann in Lua package.path
wird die /usr/local/include
sein.
Wenn ich in /usr/local/nginx/sbin
bin und ./nginx
ausführen, dann wird in Lua package.path
/usr/local/nginx/include
sein.
Ich denke, das Verzeichnis Ich starte den Nginx-Server sollte nicht begrenzt sein, , aber ich weiß nicht, wie das zu lösen ist.
Verwenden Sie HttpLuaModule? Wenn ja, Vielleicht müssen Sie lua_package_path und/oder lua_package_cpath [siehe doc] (http://wiki.ninx.org/HttpLuaModule#lua_package_path) setzen – Mali
yeah, ich habe die API gesehen, aber der Pfad und cpath beziehen sich auf die '/', bezweifle ich, dass es andere Methoden gibt, die den Pfad mit dem nginx-Verzeichnis in Beziehung setzen können. – freedoo