标签 openwrt luci 下的文章

openwrt web管理页面 LuCI 要点

在uHTTPd上安装LuCI

这是安装Web用户界面LuCI的要点。运行"opkg update && opkg list luci-*"命令查找所有可用的能通过LuCI管理OpenWrt的软件包。

安装

  1. 在软件库中检索可用软件包的最新列表:

    opkg update

◾ 完整安装一个不需要HTTPS支持的LuCI:

opkg install luci

◾ 完整安装一个需要HTTPS支持的LuCI:

opkg install luci-ssl

OPKG 安装 luci
本地语言支持
基本的LuCI Web用户界面是英文的。但是,志愿者们正积极的把它翻译成许多语言。参见http://i18n.luci.subsignal.org/pootle/ 可以参与!有关可用包的列表,运行

opkg list | grep luci-i18n-

您会看到一个可用语言包的列表。要安装你的母语,例如运行

opkg install luci-i18n-chinese 

您还可以通过网页界面安装语言包,你可以同时安装多个LuCI语言包,要在它们之间切换可通过网页界面或编辑这个文件 → /etc/config/luci

开始使用Web服务器(uHTTPd)
Web服务器uHTTPd是LuCI安装包的一个依赖软件,它会在你安装LuCI时自动安装。 安装后,Web服务器是未运行的!你需要手动开启它。你还应该使能Web服务器,以使它在你重启路由器时自动启动。 下面的第一个命令启动Web服务器,第二个使它在重启时启动。

/etc/init.d/uhttpd start
/etc/init.d/uhttpd enable

现在,你应该能够连接到Web服务器 http://192.168.1.1 享受LuCI提供的服务了。

详细资料
LuCI做为“元包”安装,它同时安装了其他几个被定义为依赖关系的包。 尤其是,它安装了uHTTPd Web服务器,配置为供LuCI使用。 安装的依赖包如下(更多信息参见LuCI技术参考):

◾ uhttpd
◾ uhttpd-mod-ubus
◾ luci-mod-admin-full
◾ luci-theme-bootstrap
◾ luci-app-firewall
◾ luci-proto-core
◾ luci-proto-ppp
◾ libiwinfo-lua

要使用uHTTPd做Web界面,你仅需要很少的配置就行,因为uHTTPd配置了CGI以使LuCI可以使用Lua解释器来工作。 默认配置如下。默认情况下/www是标准的文档根目录。 因此,通过请求该文档根目录(在浏览器中输入设备IP地址)可以找到一个如index.html的索引文件(uHTTPd设置)。 配备的/www/index.html(与LuCI一起安装)文件会在收到请求时把你重定向到/cgi-bin/luci目录, 这是LuCI的默认CGI通道。这仅是一个脚本,它主要是在/usr/bin/lua中调用Lua。 uHTTPd默认配置为用CGI加载/cgi-bin路径下的页面,从而通过/cgi-bin/luci 脚本为这些网页开启服务。

另外,也可以把Lua作为嵌入式进程来运行LuCI。uHTTPd支持这一点; 可以参考uHTTPd Web服务器配置上uHTTPd的UCI配置的相关文章和章节 。

本文章由http://www.wifidog.pro/2015/08/11/openwrt-luci%E8%A6%81%E7%82%B9.html整理编辑,转载请注明出处

openwrt web管理luci界面修改

1.jpg

以前都没听过openwrt和luci,只接触过简单的php语言。由于工作原因,要修改下luci的界面,竟然用了我2天的时间才简单的了解了luci的用法。这里简单的和大家分享下。(就接触2天,本人又是菜鸟级别,高手直接略过吧)大家发现有什么错误就和我说下大家共同学习。我主要是想修改下open后台界面网页的内容。

具体怎么安装已经有人介绍过来了,我就不详细说了。下面说配置好之后,修改UI的做法

在浏览器中输入:http://192.168.1.1/ 会自动跳到http://192.168.1.1/cgi-bin/luci 登陆默认root 密码是空

默认的几个一级菜单都是在modules\admin-full\luasrc\controller\admin\ 这个目录下

这个就类似于php的根目录了。/etc/config/这个目录下面的文件,个人观点是可以把它当做是php中的数据库连看待,这样反而更方便理解。

实际上luci界面提供的已经很全了,我们并没有多少必要要新建立页面,我们大多就是在已有的界面上添加一些内容。比如我们公司现在需要添加wifi的isolate和maxassoc这两项属性。就让我找了半天才找到
wifi.jpg

首先要找到network-wifi对应的文件,

在找点击edit后页面对应的文件。
wifi-edit.jpg

network.lua这个文件里面就定义了network下面有哪些二级目录。

比如我要改wifi,我就看到有

if has_wifi and has_wifi.size > 0 then page = entry({“admin”, “network”, “wireless”}, arcombine(template(“admin_network/wifi_overview”), cbi(“admin_network/wifi”)), _(“Wifi”), 15) page.leaf = true page.subindex = true

这里面有cbi(“admin_network/wifi”)这条语句。知道的人就知道,不知道也没关系,想知道可以自己查下。

这时我们到目录\modules\admin-full\luasrc\model\cbi\admin_network\下面可以发现一个wifi.lua的文件,cbi的语句就是指向的这个文件。我们打开wifi.lua后,在———————- Interface ———————–这个下面地方添加

isolate = s:taboption(“advanced”, Flag, “isolate”, translate(“Separate Clients”),translate(“Prevents client-to-client communication”))

maxassoc = s:taboption(“advanced”, Value, “maxassoc”, translate(“Connection Limi”),translate(“Specifies the maximum number of clients to connect.”))

这样两条语句就可以了。进入network-wifi edit看下我们修改的效果

我们进入network-wifi之后选择一个无线网络点击edit后进入页面
example.jpg

在Interface Configuration下面的Advanced Settings下面可以进行修改之后点击Save & Apply

修改这两项是保存在什么地方呢?刚刚我说了,/etc/config/目录下相当于数据库的功能。

这时我们vi /etc/config/wireless可以查看到我们刚刚修改内容。
wireless-config.jpg

可以看到已经修改为我们刚刚调整的77了。

有的人想要添加新的页面和功能,可以看下下面的内容。

下面内容来源于chaochaoblog

要完成一个新模块并用到里面需要两个东西,

第一个我们先找到usr/lib/lua/LuCI/controller在里面建立一个文件夹,也就是我们的模块名称,就叫smustar吧

在smustar下面再写我们模块的主文件就叫smumodule.lua吧

参考官网,我们的模块写法应该是这样子的

module(“LuCI.controller.smustar.smumodule”, package.seeall)

function index()
entry({“admin”, “network”, “802.1x“}, cbi(“smustar-smumodule/netifaces”), “Network interfaces”, 30).dependent=false
end

第一句话是声明一下这个模块了,没什么可说的。

第二句话就是我们模块的主函数,其中呢要告诉它我们的入口,与其说入口,不如说就是告诉它是要admin登录才能用的,是在network这个菜单下,名字呢,叫做802.1x。模块执行的程序呢在smustar-smumodule/netifaces这里。

好了各位又郁闷了smustar-smumodule/netifaces是什么东西,这是我们要建立的另外一个文件,上面不是说要两个么

我们找到路径/usr/lib/lua/LuCI/module

在下面建立文件夹smustar-smmodule建立文件netfaces.lua

好了接下来就是要在netfaces.lua写我们的程序了,参考官网所说的这个什么LuCI最酷的地方,也就是修改config文件

不要说你不懂什么是config文件了,最简单的比如network。

我们在/etc/config下面建立一个配置文件叫smuset吧

那这就是一个config文件的写法

config ‘interface’ ‘smustar’

option ‘user’ ‘youruser’
option ‘pass’ ‘yourpass’

ok这个config文件就是这样子了接下来写netfaces.lua

m = Map(“smuset”, “smustar”) — We want to edit the uci config file /etc/config/smustar 这里是我们要配置的文件了,默认的路径它已经能够区别的,不用管了
s = m:section(TypedSection, “interface”, “smustar”) — Especially the “interface”-sections读出里面的interface区域来
s.addremove = true — Allow the user to create and remove the interfaces

s:option(Value, “user”, “youruser”)这个能就是一个input即一个输入框了读取的是smuset中的user项。youruser是提示语罗

key=s:option(Value, “pass”, “your password”)

key.password=true; 设置为星号的密码输入框

return m — Returns the map
好了文件就完成了,之后我们进入LuCI配置界面

在network下可以看到了802.1x选项

进入后有账号和密码输入框 改一下之后

save&apply一下,发现密码被修改了。我们的802.1x配置界面就做好了!

本文章由http://www.wifidog.pro/2015/07/30/openwrt-luci%E4%BF%AE%E6%94%B9.html整理编辑,转载请注明出处