我現在正在用nginx編程Lua。我寫我的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 [見文檔](http://wiki.nginx.org/HttpLuaModule#lua_package_path) – Mali
是的,我已經看到了api,但路徑和cpath與'/',我懷疑是否有其他方法可以使路徑與nginx目錄關聯 – freedoo