时隔一年,又要在webmin上做开发了。盗窃一句很文艺很文艺的话,作为开场白:人生一场虚空大梦,韶华白首,不过转瞬,惟有天道恒在,往复循环,不曾更改。
# pwd
/usr/libexec/webmin/cdpschedule
# ls
cdpschedule-lib.pl index.cgi lang module.info
制作模块,需要三个文件:cdpschedule-lib.pl index.cgi module.info,以及一个文件夹:lang。其中module.info这个文件是必须要有的,保存模块的元数据信息(以CDP Schedule为例):
# cat module.info
name=cdpschedule
desc=CDP Schedule #在webmin页面中显示的名字
category= #类型(表明在webmin网页中,它会被放在哪个种类之下)
osnreorder=4 #序号(在某个种类下,它排在第几个位置)
depends=1.48
module.info可以从其他模块复制过来,做一些修改即可。
其他文件(夹)的作用:
index.cgi:点击页面左边的“模块”时,页面右边显示的界面。可以在此文件中通过perl代码访问其他CGI文件。
cdpschedule-lib.pl:在此文件中定义一些函数,供index.cgi或其他cgi文件调用
lang文件夹:用于I18N,即国际化,存放webmin界面显示文字的各国版本。
开始制作模块。
如果只是想添加一个新模块,其他功能先不谈,则只需要module.info一个文件即可。此时/usr/libexec/webmin/cdpschedule文件夹下只有module.info一个文件。
# pwd
/usr/libexec/webmin/
# tar -zcvf cdpschedule.wbm.gz cdpschedule/ #将cdpschedule文件夹打包成cdpschedule.wbm.gz
# ./install-module.pl cdpschedule.wbm.gz #安装模块
安装完成。此时可以查看webmin左侧,是否有新模块“CDP Schedule”。
troubleshooting:
如果查不到新模块,做以下操作:
1、# rm -f /etc/webmin/module.infos.cache # 删除缓存文件
2、编辑/etc/webmin/webmin.acl文件,将你的模块名称添加进你的webmin用户所在行。注意:模块名称,为文件夹名称,此例中为“cdpschedule”,而不是module.info中的“name”或“des”所对应的值。
阅读(4141) | 评论(0) | 转发(0) |