• <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
            99久久人人爽亚洲精品美女| 久久精品国产清自在天天线| 久久久久亚洲精品天堂| 99久久99久久| 久久伊人影视| 日韩精品久久久久久| 亚洲精品乱码久久久久久不卡| 午夜天堂av天堂久久久| 国产精品久久久天天影视香蕉 | 久久精品国产亚洲AV电影| 91精品国产高清久久久久久国产嫩草| 亚洲v国产v天堂a无码久久| 好久久免费视频高清| 国产成人精品综合久久久久| 久久人人爽人人爽人人片AV东京热| 热re99久久精品国99热| 狠狠色丁香久久婷婷综合_中| 免费精品99久久国产综合精品| 99精品国产99久久久久久97| 久久天天婷婷五月俺也去| 97久久精品人人做人人爽| 国产精品久久亚洲不卡动漫| 久久精品国产亚洲AV高清热| 久久亚洲美女精品国产精品| 精品国产日韩久久亚洲| 亚洲午夜精品久久久久久浪潮| 国産精品久久久久久久| 青青青国产成人久久111网站| 国产精品美女久久久久久2018| 久久av无码专区亚洲av桃花岛| 欧美午夜精品久久久久免费视 | 亚洲精品无码久久毛片| 久久人人超碰精品CAOPOREN| 欧美亚洲日本久久精品| 亚洲国产成人久久综合碰| 久久亚洲精品国产精品婷婷| 久久久久人妻一区二区三区| 少妇人妻88久久中文字幕| av国内精品久久久久影院| 久久精品免费观看| 久久久精品人妻无码专区不卡|