OPENWRT-LUCI开发总结-LUCI目录结构介绍
前言
LUCI作为openWRT的CGI程序,与uhttpd web server服务器一起搭配使用。uhttpd的开机启动脚本为/etc/init.d/uhttpd,配置文件为/etc/config/uhttpd,启动命令如下,其中-h指定web server服务器的根目录/www/;-x指定CGI URL路径,默认为/www/cgi-bin/。所以,在介绍LUCI启动流程之前,先介绍下各个目录的功能。
/usr/sbin/uhttpd -f -h /www -r OpenWrt -x /cgi-bin -u /ubus -t 60 -T 30 -k 20 -A 1 -n 3 -N 100 -R -p 0.0.0.0:80 -p [::]:80
本篇整理分为以下几个部分
- 版本机目录结构
- /www目录结构
- /usr/lib/lua目录结构
版本机目录结构
1、在make menuconfig->LuCI->2.modules下可以看到默认选中luci-base,luci-mod-admin-full两个模型,这两个模型包含了网页的基本功能。
(1)luci-base目录
luci-base目录包含以下内容
- htdocs
- luasrc
- Makefile
- po
- root
- src
(a)htdocs(html+docs):此目录存放HTML相关文件,主要包含以下两个目录,当烧录到硬件设备后,将拷贝到/www根目录下
- cgi-bin:存放luci启动脚本
- luci-static:存放HTML相关文件,包含CSS、JS及网页图片等文件
(b)luasrc(lua+src):此目录存放系统功能的LUA文件及M(model)、V(view)、C(controller)文件夹,当烧录到硬件设备后,将拷贝到/usr/lib/lua/luci目录下
- C(controller):控制器,生成页面的菜单栏并定义各个页面的调用方法
- M(model):数据模型,根据底层UCI配置文件生成页面
- V(view):视图,HTML页面
(c)Makefile:定义luci-base的编译方法
(d)po:定义页面的语言风格
(e)root:存放配置文件,该目录下的所有文件将拷贝到硬件设备根目录下
(f)src:生成所需要的库文件及LUA脚本
(2)luci-mod-admin-full目录
luci-mod-admin-full目录包含以下内容
- htdocs
- luasrc
- Makefile
- src
由此可以看出,LUCI的文件框架都是以luci-base目录为基础,其他主题及模式都是在此基础之上进行增减。
/www目录结构
1、/www目录下主要包含以下内容
- cgi-bin
- index.html
- luci-static
(1)cgi-bin:此文件从luci-base下拷贝过来的,存放luci启动脚本
(2)index.html :http请求的主页面,默认是/www/index.html,这个文件里显示了登录时常看见的那句话“LuCI - Lua Configuration Interface”,同时也指定了href链接/cgi-bin/luci
(3)luci-static:存放HTML相关文件,包含CSS、JS及网页图片等文件。不同主题的htdocs/luci-static都将拷贝到这个目录下
/usr/lib/lua/目录结构
1、/usr/lib/lua/路径,顾名思义,存放了与LUA相关的文件,在LUA脚本中,通过require命令引用的脚本及函数,起始路径都是该目录。同时,不同模型及主题的luasrc文件夹都拷贝到/usr/lib/lua/luci目录下,通过/etc/config/luci中的mediaurlbase字段决定当前使用的主题及语言。
OPENWRT-LUCI开发总结-LUCI目录结构介绍相关推荐
- Kettle教程(二):Kettle目录结构介绍
文章目录 前言 一.Kettle的Spoon/Pan/Kitchen/Carte 简介 1.Spoon 2.Pan 3.Kitchen 4.Carte 二.Kettle的目录结构介绍 三.总结 前言 ...
- 【Vue】—项目的目录结构介绍
[Vue]-项目的目录结构介绍
- Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)
Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩) ...
- Flutter 基础目录结构介绍、入口自定义widget、等相关组件使用
提示:此文章为前端学习flutter过程,如有歧义期望各位大大的宝贵意见 学习Dart 基础知识 移步这里 安装flutter环境相关 移步这里 flutter基础组件使用相关 移步这里 文章目录 一 ...
- 帝国cms目录结构介绍
帝国CMS目录结构介绍 / 系统根目录 ├d/ 附件和数据存放目录 (data) │├file/ 附件存放目录 │├js/ JS调用生成目录 │└tx ...
- go-ethereum环境搭建及目录结构介绍
go-ethereum代码阅读环境搭建 Ubuntu 16.04 64bit/Mac 安装GO 配置环境变量(GOROOT, GOPATH, GOBIN) 下载源码: $ cd $GOPATH; $ ...
- Android系统源码学习——源码目录结构介绍
2019独角兽企业重金招聘Python工程师标准>>> Android 4.0源码目录结构: 本文介绍Android源码目录结构,以便读者理清Android编译系统核心代码在Andr ...
- Vue项目目录结构介绍(三)
前言 本章我们会对一个 Vue 项目的目录结构进行讲解,解释各子目录以及文件的作用,前端的模块化,Vue 单文件组件规范等. 1.基础目录和文件介绍 在上一章,我们通过 vue-cli 创建了一个新的 ...
- Lichee(一) lichee目录结构介绍和编译命令
经过繁琐的环境搭建和漫长的代码下载的等待,我们终于可以开始我们的lichee之旅了,由于内容很繁杂,涉及面比较广,接下来就针对linux uboot modules等是如何被打包到固件这条主线来分析, ...
- 小程序开发(1)-之目录结构和文件说明
#以下图片是小程序的目录结构,建议所有的目录都使用小写字母,不使用驼峰格式 #组件 components是自定义组件目录,对一些常用的组件的封装 #配置文件 config是配置文件,存有一些常用的字段 ...
最新文章
- typec扩展坞hdmi没反应_typec扩展坞转hdmi/vga多功能网口usb转换器苹果华为电脑matebook6元优惠券券后价26.8元...
- (68)FPGA面试题-使用不同的代码实现2:1 MUX ?使用assign语句
- Python:IPython性能度量
- 信息安全产业爆发在即 十三五年均增长将达20%以上
- eclipse如何导入okhttp 2.x源码
- 开源BI框架对比选择 Superset-Redash-Metabase
- 第三方支付业务流程介绍
- Android技术分享| 实现视频连麦直播
- Seismic Unix安装
- 【动态规划】字符串编辑距离(Levenshtein距离)算法
- 中国石油大学计算机评估排名,中国石油大学华东学科评估结果及排名情况怎样...
- centos使用xfreerdp登录报错
- 程序设计思维与实践 Month3 模拟
- 纯干货:优秀程序员和普通程序员的差距就在这7个关键点
- 02-蘑菇街爬虫mw-sign参数破解
- html5弹性盒子的作用,flexbox弹性盒子,真正意义上的布局样式
- Spring Security入门到实践(一)HTTP Basic在Spring Security中的应用原理浅析
- springboot项目调用阿里云短信接口(包括短信上行)
- Jpush之如何利用HttpClient实现消息推送到手机
- php融云开源sdk使用im,融云 IM SDK 集成 --- 刷新会话界面和会话列表界面
热门文章
- 开源词典软件-GoldenDict
- 只有A2L文件如何连接INCA
- 安卓手机管理_北斗ERP进销存管理(销存管理工具)V2.2.4 安卓手机版
- 可视化GDP动态图表EXCEL也能搞定,如何用Excel做动态图表
- 笔记本 关闭/开启 自带键盘
- php格林威治时间,时间戳与格林威治时间互相转换
- [设计模式]创建模式-建造者(C++描述)
- 湿化学清洗过程中晶片污染控制方法
- JavaSE_05【数组】拓展练习
- 自学总结:非科班转行前端拿到字节跳动 offer?看我是如何一步一步做到的?