• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2016年8月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910


            專注即時通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請保留相關(guān)信息,這是大家對原創(chuàng)作者勞動成果的自覺尊重!!如為您帶來不便,請于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 219196
            • 排名 - 117

            最新評論

            閱讀排行榜

            http://www.epubit.com.cn/article/219

            ZeroBrane是一個開源的Lua編輯器IDE,自帶Lua運行程序和基本的庫。最主要的一點,就是ZB可以遠(yuǎn)程在線的調(diào)試,nginx或是openresty上運行的lua腳本。

            在編輯方面可以和VIM及插件互補,多去一句,如果花點時間,給VIM按裝補全插件,目錄插件,tmux, tup,在分屏狀態(tài)下,vim還是不錯的,其實也可以把ZB的遠(yuǎn)程調(diào)試功能,也做插件,讓VIM可以進行遠(yuǎn)程在線調(diào)試。

            畢竟把系統(tǒng)的Log打的很全,如果可以在線調(diào)試,給WEB服務(wù)上運行的腳本程序下斷點,對調(diào)試工作,也大有裨益。

            下面就開始介紹,ZB如何進行在線調(diào)試。

            1.下載ZB。

            https://github.com/pkulchenko/ZeroBraneStudio

            里面有一個.sh文件,就是在linux上運行ZB的啟動程序。因為我們的Lua WEB程序在VPS上,運行ZB需要給VPS安裝Desktop,用VNC連上去。可以參考另外一篇文章。

            9.jpg

            這是運行起來的ZB界面,這個已經(jīng)進入的調(diào)試工和狀態(tài)。

            2.創(chuàng)建一個Lapis工程,使用如下的命令:

            lapis new

            關(guān)于lapis更具體工程創(chuàng)建,也可以參考別一篇文章。

            2.png

            創(chuàng)建工程后,會自動的創(chuàng)建一些文件,在這些文件中關(guān)鍵的文件有:

            nginx.conf(OpenResty的配置文件)

            test.lua (我們準(zhǔn)備調(diào)試的主程序)

            mobdebug.lua(ZB開源工程中自帶的程序,需要拷貝到當(dāng)前目錄。lualibs/mobdebug)

            socket.lua(ZB開源工程中自帶的程序,需要拷貝到當(dāng)前目錄。lualibs/ )

            3.修改配置文件。

            nginx.conf

            worker_processes ${{NUM_WORKERS}};

            error_log stderr notice;

            daemon off;

            pid logs/nginx.pid;

            events {

              worker_connections 1024;

            }

            http {

              include mime.types;

              lua_package_path '/usr/home/coding/ide/zerob/lualibs/?/?.lua;/usr/home/coding/ide/zerob/lualibs/?.lua;;';

              lua_package_cpath '/usr/home/coding/ide/zerob/bin/clibs/?.so;;';

              server {

                listen ${{PORT}};

                lua_code_cache ${{CODE_CACHE}};

                location / {

                  default_type text/html;

                  content_by_lua_file 'test.lua';

                }

                location /static/ {

                  alias static/;

                }

                location /favicon.ico {

                  alias static/favicon.ico;

                }

              }

            }

            lua_package_path和 lua_package_cpath,這兩個變量是關(guān)鍵的,需要指向你實際ZB的目錄。

            lapis自動生成的工程配置文件中,location下面使用的是content_by_lua,直接運行l(wèi)ua語句

            此處,我們直接引用lua文件,改用content_by_lua_file。

            4.創(chuàng)建調(diào)試程序。

            test.lua

            require('mobdebug').start('127.0.0.1')

            tmp_str = "Debug"

            print("Lua Lapis")

            ngx.say("Openresty")

            require('mobdebug').done()

            可以實現(xiàn)遠(yuǎn)程調(diào)試,很關(guān)健的一點就是引用了mobdebug.這個模塊,這里的127.0.0.1就是openresty

            服務(wù)運行地址。

            5.起動IDE,執(zhí)行調(diào)試。

            我們IDE菜單上的project-> project directory-> choose選擇打開,我們這個工程的目錄,

            選set from current file, 把工程中的test.lua作為當(dāng)前要處理的文件。

            下面關(guān)鍵的一點,在project 菜單里,一定要點選 "Start Debugger Server"。

            3.jpg

            國為選中后,ZB就會在后面開一端口監(jiān)聽:

            4.jpg

            注意這個8172就是為調(diào)試準(zhǔn)備的。

            5.jpg

            遠(yuǎn)行WEB服務(wù):lapis server

            6.jpg

            下面這張圖,就回到了最開始的那張圖。

            7.jpg


            我們在瀏覽器中輸入:127.0.0.1:8080

            程序進入狀態(tài)。


            我們進入Remote console標(biāo)簽頁,進行在線調(diào)試,直接使用openresy的庫函數(shù)ngx.say

            8.jpg

            單步下一句,把程序中的tmp_str的內(nèi)容打到,openresty服務(wù)器的控制臺上。

            9.jpg

            11.jpg

            我們可以通過自己寫一個函數(shù),把輸出重定向到文件里,看著更方便。

            使用shit-enter,還可以進行多行輸入代碼輸入。

            我們結(jié)束調(diào)試,就會看到ngx.say打印的內(nèi)容出現(xiàn)在網(wǎng)頁上。

            12.jpg

            下篇是如何用ZB在線調(diào)試Lua WEB程序。



            作者:糖果

            PS:轉(zhuǎn)載到其它平臺請注明作者姓名及原文鏈接,請勿用于商業(yè)用途。

            http://www.lua.ren

            致敬英文作者:Paul Kulchenko

            http://notebook.kulchenko.com/zerobrane/debugging-openresty-nginx-lua-scripts-with-zerobrane-studio

            posted on 2017-07-22 11:45 思月行云 閱讀(2049) 評論(0)  編輯 收藏 引用 所屬分類: Nginx\Openresty
            国产亚州精品女人久久久久久 | 亚洲精品国产综合久久一线| 97久久精品人人做人人爽| 久久国产成人精品国产成人亚洲| 国内精品久久久久国产盗摄| 欧美伊人久久大香线蕉综合 | 久久艹国产| 亚洲av伊人久久综合密臀性色 | 老司机午夜网站国内精品久久久久久久久| 久久久久亚洲爆乳少妇无| 亚洲国产另类久久久精品| 国产成人精品久久| 久久亚洲精品成人av无码网站| 色综合久久精品中文字幕首页 | 久久精品人妻中文系列| 久久精品www| 久久久久亚洲Av无码专| 免费一级做a爰片久久毛片潮 | 亚洲午夜久久久久久噜噜噜| 久久精品18| 四虎国产精品免费久久5151| 精品国产乱码久久久久久人妻 | 婷婷久久综合九色综合九七| 色综合久久最新中文字幕| 久久精品毛片免费观看| 欧美久久久久久| 美女久久久久久| 久久青青草原亚洲av无码| 狠狠精品久久久无码中文字幕| 国产成人精品久久二区二区| 久久天堂AV综合合色蜜桃网 | 亚洲精品午夜国产va久久| 青青青青久久精品国产h久久精品五福影院1421 | 无码人妻少妇久久中文字幕| 狠狠色综合网站久久久久久久| 久久夜色tv网站| 国产精品久久久久久久午夜片| 亚洲国产成人久久精品影视| 99热热久久这里只有精品68| 久久久亚洲精品蜜桃臀| 亚洲一级Av无码毛片久久精品|