嵌入式Linux Web 编程

本文介绍了如何在Freescale i.MX27平台上搭建一个轻量级的Web服务器,并详细记录了配置thttpd服务器及CGI环境的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久没有写文章了,最近比较忙了,论文、实习……一堆事情,废话少说,直奔主题

 

今天来谈谈最近做的一个东西,在用的freescale Imx27中架一个WEB server ,其实就是一个简单的B/S架构了。

 

首先,既然是一个WEB server ,那么肯定有一个服务器了,在一个嵌入式板子上,不可能架一个像apache这么大的服务器的,即使架在里面,整个板子的性能是可想而知的……

 

1.一步一步来,首先需要选择什么样的服务器,一些好心的人,已经为我们提供了蛮多的嵌入式server了,只要我们配置一下环境就可以了。有  boa,httpd,yhttpd,easyhtpd,lighttpd 等等了,具体选择哪个,根据你的爱好了……

  这里我选择了一个thttpd ,你可以到网上下载一个了,具体怎么找,百度之……google之……

 1)这里我下载了一个thttpd-2.25b.tar.gz

 2)解压tar xzvf thttpd-2.25b.tar.gz

 3)cd thttpd-2.23b

 4)修改Makefile文件中的CC ,选择你的交叉编译器了

    CC      = /opt/freescale/usr/local/gcc-4.1.1-glibc-2.4-nptl-sf-1/arm-926ejs-linux/bin/arm-926ejs-linux-gcc

    ./configure—host=ann—linux
      $vi Makefile
      LDFLAGS= -static//指定为静态编译

       当然也可以不用静态编译,这样会让thttpd变得很大,去掉之后,用arm-linux-readelf -d thttpd 命令来读取这个包中缺少什么样的包,却什么加什么……

 5) 现在就可以交叉编译一下了

        简单make  之后用arm-926ejs-linux-strip thttpd 去掉调试信息……

 

  6)修改一下thttpd.conf这个配置文件,具体配置方法:

       # This secti
       on overrides defaults
       #声明CGI程序的目录,是以dir为根目录的路径
       dir=/opt/dvsdk/dm365/web
       #chroot
       #屏蔽chroot是为了运行动态编译的CGI
       user=root# default = nobody
       logfile=/var/log/thttpd.log
       pidfile=/var/run/thttpd.pid
       # This section _documents_ defaults in effect
       port=81
       #port参数用于更改端口号(可不改,若还运行了别的WEB服务器,则需用不同端口)
       # nosymlink# default = !chroot
       #symlinks
       # novhost
       cgipat=/cgi-bin/*
       # nothrottles

 

 

2.第二部是配置CGI的环境,当然就是很简单了,只要修改一下thttpd.conf这个文件里,见上面,上面已经为你配置好了……

 

这个开发环境已经基本配置好了,现在总结一下我在这个过程中犯过的错误,有些错误纠结了我好久……

回想这个过程,真是……

1)编译好之后得CGI文件,必须用chmod a+x XXX.cgi 给它执行的权限,否则就是乱码,或者就跳出一个下载的页面,这个问题错误至少多花了我2个小时的时间,郁闷死了

2) 第二个是编译CGI文件需要交叉编译环境,但是我不知道脑子怎么短路了,竟然犯如此低级的错误,又至少多话了我一个小时间……

3)打印HTML文件,什么样的形式,出现了各种各样的问题……

4)乱码问题,是Linux支持UTF-8而PC上面一般用的是GD2312格式,导致这个问题,可以转化一下……

5)GET方法和POST方法的选择问题,有一个标准……

6)还有当然就是程序的错误了

7)在使用过程中,要学会使用shell脚本,不然同样的几条步骤,在测试的时候需要反复的输入,耽误时间……

8)当然,Makefile文件编写也是很重要的,不同的目录,不同的文件相互调用,怎么写Makefile文件,让其出来我们需要的binary文件呢?也是需要学习的……

 

 

总之,看似简单的东西,做起来什么问题都有了,这就是眼高手低……

当然,在调试的过程中,遇到错误的时候,要善于分析,有时候不知道怎么的,脑子不停使唤,一个劲的转牛角尖,导致白白浪费了大量的时间。

 

经过艰苦的奋斗,这个礼拜四终于全部搞定了,其他的就是界面的美化,javascript、HTML 和Linux 一些常见的应用程序变成了了,整个框架出来了,什么都变得那么的轻松……

Webadmin!是一个免费的开源框架,用于为Linux系统的快速搭建统一、稳定、易用的Web管理系统。 WebAdmin系统由三部分组成:WEB图形用户接口、WebAdmin守护进程和进程监视程序。Web图形用户接口(WebGUI)是WebAdmin系统的前端部分,为用户提供一个统一、易操作的图形界面。WebAdmin守护进程 (WebAdmind)是WebAdmin系统的后台部分,实时监视WebGUI生成的配置文件,并根据配置文件的变化情况,启动或停止相应的服务进程,WebAdmin进程监视程序(DaemonWatcher)用于实时监视WebAdmind启动的服务进程的运行状况,一旦发现启动的服务进程异常中止,立即重启中止的服务进程,从而确保系统可靠稳定运行。 WebAdmin!提供了一个结构化的WebAdmin开发框架,它的前后台部分均采用插件式的程序开发方法,借助提供的插件开发模板,WebAdmin系统开发者不必关WebAdmin开发框架的具体实现,就可设计出界面统一、操作简单、安全稳定的WebGUI界面。与WebGUI相对应,Webadmind也是采用插件式的程序开发方法。WebAdmind插件与WebGUI插件一一对应完成对界面操作的响应。DaemonWatcher是一个独立的进程监视程序,是为确保WebAdmind启动的进程能够不可间断地提供服务,一旦发现被监视程序发生异常中止,DaemonWatcher将根据进程的启动脚本立即启动被中止进程。 WebAdmin是一个用C语言设计的易用的图形用户接口开发框架,C语言的高可移植性使得WebAdmin可以广泛应用于包括Linux、Unix、Windows及各种嵌入式操作系统中,编译WebAdmin系统除Libxml2库处不需要额外的C函数库支持。WebAdmin提供了丰富的API函数,开发者可以根据自己的需要定制个性化的WebAdmin系统。 WebAdmin系统的界面风格也可以自己定制,对于OEM厂商可以根据需要修改界面风格,满足定制要求。 WebAdmin的开放设计思想,为WebAdmin系统的不断发展普奠定了基础,无数开发者提供了开源插件模块,用户甚至不用写一行代码就可根据自己的需要设计WebAdmin系统。 【简单使用方法】:下载后将压缩文件上传到Linux系统中,用tar xvfz webadmin-devel-1.3.tar.gz解压,解压后进入webadmin-devel目录,执行./configure,make命令后将会在test/webui目录下生成一个webadmin.cgi文件,将此文件拷贝到apache下的WEB根目录下cgi-bin目录下即可,为测试webadmin.cgi,还需将htdocs目录下的文件拷贝到apache的WEB根目录下,将etc目录中的所有文件拷贝到根目录下的etc中,最后用浏览器访问你的apache Web服务器即可看到Linux系统的WEB管理界面。 【说明】:编译此源码需要libxml2库的支持 有技术问题可以访问官方网站:http://www.webadminc.com,联系电话:13311223928
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值