Теперь я программирую в Lua с nginx. Я пишу файл Lua и размещаю его в каталоге в /usr/local/nginx/lua
. Тогда в nginx.conf
я пишу место, например,Путь пакетов Lua в nginx
location /lua {
lua_need_request_body on;
content_by_lua_file lua/test.lua;
}
Когда я достигаю это место через Nginx, сценарий Lua будет выполняться.
В файле Lua, один, как правило, может включать в свой собственный модуль Lua, и указать путь поиска
common_path = '../include/?.lua;'
package.path = common_path .. package.path
В общем программирования Lua, относительный путь относительно моего файла Lua.
Но с nginx относительные пути относятся к каталогу, в котором я запускаю Nginx.
Как я в /usr/local/nginx
и выполнить sbin/nginx
, то в Lua package.path
будет /usr/local/include
.
Если я нахожусь в /usr/local/nginx/sbin
и исполню ./nginx
, то в Lua package.path
будет /usr/local/nginx/include
.
Я думаю, что каталог, в котором я запускаю сервер nginx, не должен быть ограничен, , но я не знаю, как это решить.
Вы используете HttpLuaModule? Если да, возможно, вам нужно установить lua_package_path и/или lua_package_cpath [см. Doc] (http://wiki.nginx.org/HttpLuaModule#lua_package_path) – Mali
Да, я видел api, но путь и cpath связаны с '/', я сомневаюсь, есть ли другие методы, которые могут сделать путь связанным с каталогом nginx. – freedoo