Lua - IDE调试OpenResty

本文介绍如何使用IDE 调试 OpenResty

IDE工具:zerobranestudio 下载地址:https://studio.zerobrane.com/support

OpenResty 必须是32位的,https://openresty.org/download/openresty-1.13.6.2-win32.zip

一、配置OpenResty与ZeroBraneStudio的关联

进入OpenResty下的nginx的配置,并添加以下配置ZeroBraneStudio这部分ZeroBraneStudio的软件路径

lua_package_path 'D:\ZE/lua/ZeroBraneStudioEduPack-1.90-win32/lualibs/?/?.lua;D:\ZE/lua/ZeroBraneStudioEduPack-1.90-win32/lualibs/?.lua;;';
lua_package_cpath 'D:\ZE/lua/ZeroBraneStudioEduPack-1.90-win32/bin/clibs/?.dll;;';

 

二、编写测试Lua

编写Lua测试文件
require(“mobdebug”).start(“127.0.0.1”)是很重要的一行代码,debug会进入到这行代码的后一行进行调试

require("mobdebug").start("127.0.0.1")
--用于接收前端数据的对象
local args=nil
--获取前端的请求方式 并获取传递的参数   
local request_method = ngx.var.request_method
--判断是get请求还是post请求并分别拿出相应的数据
if"GET" == request_method then
        args = ngx.req.get_uri_args()
elseif "POST" == request_method then
        ngx.req.read_body()
        args = ngx.req.get_post_args()
        --兼容请求使用post请求,但是传参以get方式传造成的无法获取到数据的bug
        if (args == nil or args.data == null) then
                args = ngx.req.get_uri_args()
        end
end

--获取前端传递的name值
local name = args.name
--响应前端
ngx.say("hello:"..name)

三、配置OpenResty中Lua文件的关联

location /luatest{
            default_type text/html;
            #这里的lua文件的路径为绝对路径,请根据自己安装的实际路径填写
            #记得斜杠是/这个,从window中拷贝出来的是\这样,这样是有问题的,务必注意
            content_by_lua_file D:/ZE/lua/testcode/testlua.lua;
        }

重启OpenResty下的Nginx

四、ZeroBrane Studio调试设置

开启ZeroBrane Studio的调试模式

添加需要查看的变量

ZeroBrane Studio调试

请求OpenResty下的对应Lua的请求地址
如:http://127.0.0.1/luatest?name=Lua

 

ZeroBrane Studio会进入绿色箭头对应行的代码

 

调试快捷键

F10 下一行
Shift+F10 跳过调试
Ctrl +F10 跳过当前function
Shift + F5 终止运行
F6 运行
F5 debug运行

常见问题
路径问题
可能会存在Lua的路径错误导致Lua无法正常运行,检查各个配置的路径即可
不是有效的 Win32 应用程序
这个就是安装的64位的OpenResty,换成32位的即可


到这里即可使用ZeroBrane Studio进行OpenResty的开发调试了

 

 

转自:https://blog.csdn.net/lupengfei1009/article/details/86071905

posted on 2018-09-02 12:11  TrustNature  阅读(253)  评论(0)    收藏  举报