LuCI做爲「FFLuCI」誕生於2008年3月份,目的是爲OpenWrt固件從 Whiterussian 到 Kamikaze實現快速配置接口。Lua是一個小巧的腳本語言,很容易嵌入其它語言。輕量級 LUA語言的官方版本只包括一個精簡的核心和最基本的庫。這使得LUA體積小、啓動速度快,從而適合嵌入在別的程序裏。UCI是OpenWrt中爲實現全部系統配置的一個統一接口,英文名Unified Configuration Interface,即統一配置接口。LuCI,便是這兩個項目的合體,能夠實現路由的網頁配置界面。javascript
要在路由器上實現路由器的配置頁面的開發java
就是路由器,後標籤貼的,管理路徑 通常是 192.168.1.1 或192.168.0.1web
要實現一套這樣的小項目json
項目內容很小,我的有興趣,因此接了這任務後端
任何的web開發,只要有搞清楚的request,response,mvc結構,很容易上手。mvc
後端示例代碼ui
#!/usr/bin/env lua local json = require "los.json" local util = require "los.util" --配置文件路徑 wifiplacedatapath="/etc/testconfig.data" --設置 local function set_placeinfo(data) local str="" util.exec('rm -rf '.. wifiplacedatapath) for k,v in pairs(data) do if k~="act" then util.exec("echo '" .. k .. "|" .. v .. "' >> " .. wifiplacedatapath) end end ngx.print(json.encode({status=0})) end --讀取 function getplaceinfo() local bw = io.open(wifiplacedatapath) local wifidata={} if bw then local bwraw = bw:read("*a") local tabs= split(bwraw,"\n") for i=1,#tabs do if tabs[i]~=nil and tabs[i]~='' then local subtabs=split(tabs[i],"|") wifidata[subtabs[1]]=subtabs[2] end end end return wifidata end local function get_placeinfo() local wifidata=getplaceinfo() ngx.print(json.encode(wifidata)) end --路由 local function parser() local args = ngx.req.get_uri_args() if tostring(args.act) == "get" then get_placeinfo() elseif tostring(args.act) == "set" then set_placeinfo(args) end end parser() local function split(str, delimiter) if str==nil or str=='' or delimiter==nil then return nil end local result = {} for match in (str..delimiter):gmatch("(.-)"..delimiter) do table.insert(result, match) end return result end