本帖最后由 zhangzhenhu 于 2016-5-14 11:38 编辑
安装原生luci大体思路 luci的web程序的入口就是/www/cgi-bin/luci,这个是lua脚本语言编写的,打开这个脚本后,就看到其实/www/cgi-bin/luci就是调用/usr/lib/lua/luci 里面的接口,也就是luci界面的所有程序都在/usr/lib/lua/luci,而/www/cgi-bin/luci是入口。 熟悉linux的朋友多知道/usr/lib/lua/luci 其实是作为lua的一个lib库存在的。/www/cgi-bin/luci中是引入了luci库。 有以上的了解后,我们就可以开搞了。 大体思路就是: 1) 我们在小米路由3的官方系统上再启动一个http server,监听80外的另一个端口,比如8080。 2) 再另外的位置部署一个/www/ ,web程序的入口,这个入口里的cgi-bin/luci调用我们自己的luci
http server再启动一个http server还是比较简单的,开始我使用系统里由的uhttpd,但是一直失败,后来改成lighttpd。 安装lighttpd: /data/opkginstall lighttpd 就可以了 配置lighttpd: 修改文件 /etc/lighttpd/lighttpd.conf,添加cgi支持,红色部分取消注释 server.modules = ( # "mod_rewrite", # "mod_redirect", # "mod_alias", # "mod_auth", # "mod_status", # "mod_setenv", # "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", "mod_cgi", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_webdav" ) 修改监听的端口号 #bind to port (default: 80) server.port = 8080 其它相关目录修改 server.document-root= "/data/www/" server.errorfile-prefix= “/data/www/error-" ##enable syslog server.errorlog-use-syslog= “enable" cgi.assign = ("cgi-bin/luci"=> “/data/usr/bin/lua") url.rewrite = ( "^/luci$" =>"/luci/", # helper only "^/cgi-bin/luci.*" => "/luci$0", "^/luci-static/.*" => "/luci$0" ) 修改启动脚本/etc/init.d/lighttpd 这里就是我上文中说的,我们把lighttpd安装在了/data/目录下,其命令应该是/data/usr/sbin/lighttpd
lua(luci)部署 创建目录 mkdir-p /data/usr/bin mkdir-p /data/usr/lib/lua/luci 拷贝lua cp/usr/bin/lua /data/usr/bin/ 安装luci 直接opkg安装是不行的,由于系统内核版本太低,一些内核依赖不兼容,无法直接安装用 opkg install 安装。 手动下载luci-base_0.12+svn-r10530-1_ramips_24kec.ipk 然后解压出来,ipk文件其实就是tar的压缩包 tar -xzf luci-base_0.12+svn-r10530-1_ramips_24kec.ipk tar -xzf data.tar.gz 然后就会看到我们需要的文件了,注意这里etc/config/luci 是luci的配置文件,为了和系统的已经有的区分开,我们改写名字,mv etc/config/luci etc/config/luci-opkg 。然后把这些通通复制到/data/目录下,记得先重命名etc/config/luci,再拷贝到/data/,否则会覆盖系统原有的。 drwxr-xr-x3 tiger tiger 4096 9月 24 2014 etc/ drwxr-xr-x 3 tiger tiger 4096 9月 24 2014 lib/ drwxr-xr-x 2 tiger tiger 4096 9月 24 2014 sbin/ drwxr-xr-x 3 tiger tiger 4096 9月 24 2014 usr/ drwxr-xr-x 4 tiger tiger 4096 9月 24 2014 www/ 然后就是要修改一些文件的内容,以达到我们安装的luci要独立于系统自带的,注意以下这些文件都是/data/目录下的
启动 /etc/init.d/lighttpd enable /etc/init.d/lighttpd start
|