1.LUCI简介
LUCI是一个小巧的语言,诞生于2008年3月份,目的是为OpenWrt固件从 Whiterussian 到 Kamikaze实现快速配置接口。轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。UCI是OpenWrt中为实现所有系统配置的一个统一接口,英文名Unified Configuration Interface,即统一配置接口。LuCI,即是这两个项目的合体,可以实现路由的网页配置界面。[·引自百度百科https://baike.baidu.com/item/...]
2. 我做过什么
其实我接触LUCI并不久,主要用它来为OpenWrt写UCI接口,来存取配置文件里的内容。存取有两种方式:
使用LUCI原有机制实现存取
自定义界面进行存取
这两种我都会介绍。本文主要介绍一些LUCI的基本内容和一种方式的应用。
3. LUCI的基本架构
LUCI可以归属为web开发行列。因为它的内容都是直接在浏览器里体现出来的。它的基本架构跟很多WEB开发语言的框架一样,都是MVC架构。以下给出一些简单的解释:
M(Model): 模型层,路径是/usr/lib/lua/luci/model/。这个是数据处理的具体代码的层。该层中有一个cbi文件夹,那里面是预定义的一些的逻辑文件。
V(View): 视图层,路径是/usr/lib/lua/luci/view/。这个很容易理解,就是存放视图文件的地方。LUCI里的视图文件是.htm文件。
C(Controller): 控制层,路径是/usr/lib/lua/luci/controller/admin/。这个层最主要的功能是设定路由;它还有一个功能跟模型层一致——处理数据。
根目录: /usr/lib/lua/luci
资源文件存放目录: /www/luci-static/
4. 开始建立新页面
以配置network文件为例,实现一个testnet模块需要完成下面的步骤。
步骤:
建立一个配置文件
定义控制层
定义模型层
1> 建立一个配置文件
之前介绍的时候有说到,LUCI是用于存取配置文件的信息,所以我们的若要新建一个模块,需要一个配置文件。配置文件的路径一般是在/etc/config/。由于现在我们是需要配置network文件,而这个是系统必备文件,它已经存在,所以我们不需要新建,但我们要了解一下里面的结构是怎么样的:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.