我现在正在使用nginx在Lua中编程.我写了我的Lua文件并将其放在一个目录中/usr/local/nginx/lua.然后在nginx.conf我写一个位置,如
location /lua {
lua_need_request_body on;
content_by_lua_file lua/test.lua;
}
Run Code Online (Sandbox Code Playgroud)
当我通过Nginx访问此位置时,将执行Lua脚本.
在Lua文件中,通常可以包含您自己的Lua模块,并指示搜索路径
common_path = '../include/?.lua;'
package.path = common_path .. package.path
Run Code Online (Sandbox Code Playgroud)
在常见的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服务器的目录不应该受到限制,但我不知道如何解决这个问题.
Wol*_*ivy 17
您想修改Lua package.path以在您拥有源代码的目录中进行搜索.对你而言,就是这样lua/.
你这样做与lua_package_path指令,在HTTP块(文档说,你可以把它放在顶层,但是当我尝试它不工作).
所以对你来说:
http {
#the scripts in lua/ need to refer to each other
#but the server runs in lua/..
lua_package_path "./lua/?.lua;;";
...
}
Run Code Online (Sandbox Code Playgroud)
现在,即使服务器运行一个目录,您的lua脚本也可以找到对方.
| 归档时间: |
|
| 查看次数: |
15255 次 |
| 最近记录: |