嵌入式Linux Web 编程

2019-07-12 18:04发布

好久没有写文章了,最近比较忙了,论文、实习……一堆事情,废话少说,直奔主题   今天来谈谈最近做的一个东西,在用的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 一些常见的应用程序变成了了,整个框架出来了,什么都变得那么的轻松……