嵌入式linux web服务器boa的移植方法/arm开发板linux嵌入式web服务器boa

【转载】移植多款轻量级 Web服务器到ARM-Linux系统 http://blog.chinaunix.net/u1/34474/showart_488114.html网络服务对于嵌入式Linux来说,已经是基本的内容了。对于简单的WEB服务,可以移植现成的开源软件。   现在使用于小型系统的轻量级WebServer主要有:lighttpd、thttpd、shttpd和boa等等。   早在07年5月份的时候,由于毕业设计的需要,我就移植过了Boa服务 阅读详情

今天自己在开发板上移植了boa服务器。参考资料是李驹光、郑耿大侠在恒颐论坛上的帖子。李大侠写的好,我没有费什么力气就搞定了,:-)。
步骤如下:

1.从
http://www.boa.org/
下载Boa源码,将其解压并进入源码目录的src子目录
    # tar -zxvf boa-0.94.13.tar.gz
    # cd boa-0.94.13/src
2.生成Makefile文件
    # ./configure
    
修改Makefile文件,
a.找到CC=gcc,将其改成CC = arm-linux-gcc,
b.找到CPP = gcc –E,将其改成CPP = arm-linux-gcc –E,
保存退出。
3.运行make进行编译,得到的可执行程序为boa,并将调试信息剥去
    # make
    # arm-linux-strip boa

(如果make: yacc:命令未找到
解决方法:apt-get install bison

如果lex  boa_lexer.l
make: lex: Command not found
make: *** [lex.yy.c] Error 127

解决方法:apt-get install flex

如果util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
解决方法:
修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
然后
debian:/home/a/sss/boa-0.94.13/src# make clean
debian:/home/a/sss/boa-0.94.13/src# make
)

4.编写boa.conf
5.cp boa 到开发板的/bin目录下,在开发板/etc目录下建boa目录,cp boa.conf到板子的/etc/boa目录。
6.创建日志文件所在目录/var/log/boa,创建HTML文档的主目录/var/www,创建CGI脚本所在目录/var/www/cgi-bin/,在/var/www中放置一个index.html文件
7.cp mime.types文件到开发板/etc目录
8.vi passwd,添加nouser用户,vi group 添加nogroup组
8.运行boa:
#/bin/boa
现在通过其他机器就可以访问了。
http://192.168.0.12
就可以访问到你放置的那个index页面了。
9.编辑helloworld.c程序测试cgi的运行
#arm-linux-gcc -o helloworld.cgi helloworld.c
#cp helloworld.cgi 到开发板的/var/www/cgi-bin目录下
在pc机的浏览器地址栏输入
http://192.168.0.12/cgi-bin/helloworld.cgi
,可以看到相关页面,CGI脚本测试通过。
10.从CGIC的主站点
http://www.boutell.com/cgic/
下载源码,将其解压并进入源码目录
    # tar -zxvf cgic205.tar.gz
    # cd cgic205
11.修改Makefile文件
a.找到CC=gcc,将其改成CC=arm-linux-gcc,
b.找到AR=ar,将其改成AR=arm-linux-ar,
c.找到RANLIB=ranlib,将其改成RANLIB=arm-linux-ranlib。
e.找到gcc cgictest.o -o cgictest.cgi ${LIBS},
  将其改成$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS},
f.找到gcc capture.o -o capture ${LIBS},
  将其改成$(CC) $(CFLAGS) capture.o -o capture ${LIBS},
保存退出。
12.然后运行make进行编译,得到的CGIC库libcgic.a,我们通过调试辅助程序capture和测试程序cgictest.cgi,来验证生成CGIC库的正确性。
13.将capture和cgictest.cgi拷贝到主机的/var/www/cgi-bin目录下。
在工作站的浏览器地址栏输入
http://192.168.0.12/cgi-bin/cgictest.cgi
,可以看到页面,CGIC库和测试脚本都移植成功。




下边是李大侠的大文了。


   随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍这种应用的开发和移植工作。

   用户首先需要在嵌入式设备上成功移植支持脚本或CGI功能的Web服务器,然后才能进行应用程序的开发。
    
1、嵌入式Web服务器移植  
   
   由于嵌入式设备资源一般都比较有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux下最常用的如Apache等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web服务器在存贮空间和运行时所占有的内存空间上都会非常适合于嵌入式应用场合。
   典型的嵌入式Web服务器有Boa (www.boa.org)和thttpd (http://www.acme.com/software/thttpd/)等,它们和Apache等高性能的Web服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。
   
   我们介绍比较常用的Boa服务器的移植。Boa是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全,在其站点公布的性能测试中,Boa的性能要好于Apache服务器。
    第一步完成Boa程序的移植。从www.boa.org下载Boa源码,当前最新版本为0.94.13,将其解压并进入源码目录的src子目录
    # tar xzf boa-0.94.13.tar.gz
    # cd boa-0.94.13/src
生成Makefile文件
    # ./configure
    修改Makefile文件,找到CC=gcc,将其改成CC = arm-linux-gcc,再找到CPP = gcc –E,将其改成CPP = arm-linux-gcc –E,并保存退出。
    然后运行make进行编译,得到的可执行程序为boa,将调试信息剥去,得到的最后程序只有约60KB大小。
    # make
    # arm-linux-strip boa
   第二步完成Boa的配置,使其能够支持CGI程序的执行。Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改,下面解释一下该文件的含义:
#监听的端口号,缺省都是80,一般无需修改
Port 80
# bind调用的IP地址,一般注释掉,表明绑定到INADDR_ANY,通配于服务器的所有IP地址
#Listen 192.68.0.5
#作为哪个用户运行,即它拥有该用户的权限,一般都是nobody,需
要 /etc/passwd中有nobody用户
User nobody (或者User 0)
#作为哪个用户组运行,即它拥有该用户组的权限,一般都是nogroup,需要在/etc/group文件中有nogroup组
Group nogroup (或者Group 0)
#当服务器发生问题时发送报警的email地址,目前未用,注释掉
#ServerAdmin root@localhost
#错误日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null。在下面设置时,注意一定要建立/var/log/boa目录
ErrorLog /var/log/boa/error_log
#访问日志文件。如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用#/dev/null或直接注释掉。在下面设置时,注意一定要建立/var/log/boa目录
#AccessLog /var/log/boa/access_log
#是否使用本地时间。如果没有注释掉,则使用本地时间。注释掉则使用UTC时间
#UseLocaltime
#是否记录CGI运行信息,如果没有注释掉,则记录,注释掉则不记录
#VerboseCGILogs
#服务器名字
ServerName www.hyesco.com
#是否启动虚拟主机功能,即设备可以有多个网络接口,每个接口都可以拥有一个虚拟的Web服务器。一般注释掉,即不需要启动
#VirtualHost
#非常重要,HTML文档的主目录。如果没有以/开始,则表示从服务器的根路径开始。
DocumentRoot /var/www
#如果收到一个用户请求的话,在用户主目录后再增加的目录名
UserDir public_html
#HTML目录索引的文件名,也是没有用户只指明访问目录时返回的文件名
DirectoryIndex index.html
#当HTML目录没有索引文件时,用户只指明访问目录时,boa会调用该程序生成索引文件然后返回给用户,因为该过程比较慢最好不执行,可以注释掉或者给每个HTML目录加上DirectoryIndex指明的文件
#DirectoryMaker /usr/lib/boa/boa_indexer
#如果DirectoryIndex不存在,并且DirectoryMaker被注释,那么就用Boa自带的索引生成程序来生成目录的索引文件并输出到下面目录,该目录必须是Boa能读写
# DirectoryCache /var/spool/boa/dircache
#一个连接所允许的HTTP持续作用请求最大数目,注释或设为0都将关闭HTTP持续作用
KeepAliveMax 1000
#HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位,超时将关闭连接
KeepAliveTimeout 10
#指明mime.types文件位置。如果没有以/开始,则表示从服务器的根路径开始。可以注释掉避免使用mime.types文件,此时需要用AddType在本文件里指明
MimeTypes /etc/mime.types
#文件扩展名没有或未知的话,使用的缺省MIME类型
DefaultType text/plain
#提供CGI程序的PATH环境变量值
CGIPath /bin:/usr/bin:/usr/local/bin
#将文件扩展名和MIME类型关联起来,和mime.types文件作用一样。如果用mime.types
#文件,则注释掉,如果不使用mime.types文件,则必须使用
#AddType application/x-httpd-cgi cgi
#指明文档重定向路径
#Redirect /bar http://elsewhere/feh/bar
#为路径加上别名
Alias /doc /usr/doc
#非常重要,指明CGI脚本的虚拟路径对应的实际路径。一般所有的CGI脚本都要放在实际路径里,用户访问执行时输入站点+虚拟路径+CGI脚本名
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
   用户可以根据自己需要,对boa.conf进行修改,但必须要保证其他的辅助文件和设置必须和boa.conf里的配置相符,不然Boa就不能正常工作。在上面的例子中,我们还需要创建日志文件所在目录/var/log/boa,创建HTML文档的主目录/var/www,将mime.types文件拷贝到/etc目录,创建CGI脚本所在目录/var/www/cgi-bin/。mime.types文件用来指明不同文件扩展名对应的MIME类型,一般可以直接从Linux主机上拷贝一个,大部分也都是在主机的/etc目录下。
第三步就是测试Boa能否正常工作,静态HTML页面能否正常访问,CGI脚本能否正常运行,一般采用NFS方式来进行测试工作,可以将嵌入式目标系统上的/etc目录拷贝到主机的NFS共享目录下,然后将NFS共享目录下的etc目录重新NFS mount为目标系统上的/etc目录。这样就可以在主机上对etc目录下的各种配置文件,如进行修改而立刻在目标系统上生效。
  假设主机/nfs目录为共享目录,在其下面建立一个www子目录作为Web站点的主目录,其内容如下:
# ls /nfs/www
cgi-bin  images index.html
   index.html为测试主页面,images为存放各种图片的子目录,cgi-bin为CGI脚本的存放目录。根据示例boa.conf的配置,目前HTML文档的主目录为/var/www,CGI脚本目录为/var/www/cgi-bin,则运行以下命令将主机的/nfs/www目录mount成目标板上的/var/www目录。然后就可以运行boa了:
# mount -t nfs 192.168.0.20:/nfs/www /var/www -o nolock
# boa
在工作站上运行浏览器进行测试,在地址栏输入目标系统IP,即
http://192.168.0.162
,可以看到相关页面,表示静态HTML页面测试通过。
    接下来进行CGI脚本的测试,我们需要一个测试用的CGI脚本。可以写个最简单的Hello World程序,示例代码如下
#include 
void main() {
    printf("Content-type: text/html\n\n") ;
    printf("\n") ;
    printf("CGI Output\n") ;
    printf("\n") ;
    printf("Hello, world.\n") ;
    printf("\n") ;
    printf("\n") ;
    exit(0) ;
}
   然后进行交叉编译,将得到的helloworld.cgi拷贝到主机的/nfs/www/cgi-bin目录下。
#arm-linux-gcc -o helloworld.cgi helloworld.c
#cp helloworld.cgi /nfs/www/cgi-bin
在浏览器地址栏输入http://192.168.67.16/cgi-bin/helloworld.cgi,可以看到相关页面,表示CGI脚本测试通过。
  现在我们已经可以让Boa在嵌入式目标系统上正常工作了,嵌入式Web服务器移植成功。在以上的移植过程中,最好设定boa.conf中的错误日志文件ErrorLog,允许Boa记录错误信息;测试静态HTML页面和CGI脚本时,不管结果如何,最好都查看错误日志文件;CGI脚本测试很容易发生权限不够的错误,要保证Boa访问的主目录、CGI脚本目录以及临时文件目录(如果没有设置TMP环境变量时,缺省是/tmp目录),都必须能被Boa运行时所代表的用户完全访问,该用户由boa.conf中的User指出。


   目前Web技术中生成动态Web页面的方法有CGI和服务器脚本,如JSP, ASP等,但后者需要Web服务器具有这些脚本的运行支持模块。在嵌入式Web服务器中,考虑到资源限制问题,一般都只提供CGI支持,因此在嵌入式设备中Web方式应用实际上就是基于CGI的程序开发。
    CGI(Common Gate Intergace)是一段运行在Web服务器上的程序,提供同客户端Html页面的接口。我们看一个实际例子:常见的个人主页上大都有一个留言本,留言本的工作方式是这样的:先由用户输入一些信息,如名字之类的东西,接着用户按一下“留言”(到目前为止工作都在客户端),浏览器就把这些信息传送到服务器的CGI程序中,于是CGI程序在服务器上按照预定的方法进行处理,在本例中就是把用户提交的信息存入指定的文件中,最后CGI程序给客户端发回一个“留言结束”字样的页面,用户可以在浏览器里看到。
  在进行CGI编程之前,我们先了解HTML的一些知识。CGI可以使用多种编程语言来实现,包括C、 C++、Perl等,但在嵌入式设备的开发中,一般都不会采用Perl等解释性语言,因为这种语言还需要有解释执行的支撑模块,会占用存贮空间和内存,最常用的方法当然是用C来编写,但C并不是很适合开发象CGI这种需要大量进行字符串操作的程序,编程比较烦琐,因此,对于一个专业的开发人员来说,首先想到的应该是有没有可复用的库来支持快速高效的开发CGI程序。幸运的是目前就有不少开放源码的支持CGI开发的 C库。我们在此只介绍CGIC,有兴趣的朋友可以自己在Internet上搜索其他的C库。
CGIC库的移植
    

   CGIC是一个支持CGI开发的开放源码的标准C库,可以免费使用,只需要在开发的站点和程序文档中有个公开声明即可,表明程序使用了CGIC库,用户也可以购买商业授权而无需公开声明。
    CGIC能够提供以下功能:
   1  分析数据,并自动校正一些有缺陷的浏览器发来的数据;
   2  透明接收用GET或 POST方法发来的From数据;
   3   能接受上传文件;
   4   能够设置和接收cookies;
   5   用一致的方式处理From元素里的回车;
   6   提供字符串,整数,浮点数,单选或多选功能来接收数据;
   7   提供数字字段的边界检查;
   8   能够将CGI环境变量转化成C中的非空字符串;
   9   提供CGI程序的调试手段,能够回放CGI程序执行时的CGI状态;
  总之,CGIC是一个功能比较强大的支持CGI开发的标准C库,并支持Linux, Unix 和Windows等多操作系统。
  以下描述CGIC的移植过程。
  从CGIC的主站点http://www.boutell.com/cgic/下载源码,当前最新版本是2.05版。将其解压并进入源码目录
    # tar xzf cgic205.tar.gz

    # cd cgic205

    修改Makefile文件,找到CC=gcc,将其改成CC=arm-linux-gcc,找到AR=ar,将其改成AR=arm-linux-ar,找到RANLIB=ranlib,将其改成RANLIB=arm-linux-ranlib。找到gcc cgictest.o -o cgictest.cgi ${LIBS},将其改成$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS},找到gcc capture.o -o capture ${LIBS},将其改成$(CC) $(CFLAGS) capture.o -o capture ${LIBS},并保存退出。
   然后运行make进行编译,得到的CGIC库libcgic.a,我们通过调试辅助程序capture和测试程序cgictest.cgi,来验证生成CGIC库的正确性。
   将capture和cgictest.cgi拷贝到主机的/nfs/www/cgi-bin目录下。
    在工作站的浏览器地址栏输入http://192.168.67.16/cgi-bin/cgictest.cgi,可以看到页面,表示CGIC库和测试脚本都移植成功。cgictest.cgi比较完整的展现了CGIC库的功能,在开发基于CGIC库的CGI程序前最好先掌握cgictest.cgi程序,也是用户开发特定应用程序时的参考范例。

  HTML模板的制作
Web方式的应用开发一般都会将界面和程序逻辑脱离开来,允许在一定程度下更改界面,如改变界面文本的属性,建立多语言版本等,而无需改动程序逻辑。界面一般由美工来进行制作,而程序员负责具体功能的实现。在 HTML中,表单 (FORM)是最主要的传递信息的手段,它适用于任何浏览器。表单中有很多元素,包括输入文本框,单选框,多选框,按钮,等等,可以提供信息的交互。具体对象说明和语法请参见其他HTML书籍,在这里不作介绍。根据应用需求,美工或其他设计人员将最后的Web页面设计出来,作为程序员进行开发的模板。

    CGI程序的工作一般就是接收表单数据,进行数据处理,最后根据处理结果生成新的页面返回给浏览器。表单数据一般是以POST方法提交给服务器,由CGI程序获得,程序必须要将界面数据和内部数据对应起来才能够进行下一步的处理。CGI程序从页面获取数据就根据元素名字/值中的元素名字来进行区分。但CGI返回页面就比较麻烦。由于界面在程序开发完成后还有可能会改变,而且有些需要程序处理的地方可能没有表单元素,因此对程序来说,不能以表单元素名作为区分的基础,一般方法是采用HTML中的注释来标记。

    程序员需要在模板中为每一个表单元素以及其他任何需要程序处理的地方,按照一定规则,如注释的下一行就是表单元素行,建立其注释标记。CGI程序就可以根据注释标记来判断表单元素信息并进行处理。程序逐行读取模板文件,检查有无注释标记,如有的话,则下一行需要进行处理,给表单元素赋上数据,最后就可以返回带数据的页面给浏览器。

    HTML模板还需要关注的是输入的检查。根据输入检查越早越好的原则,需要在用户界面上就对用户提交的数据进行检查。目前一般是采用javascript脚本的方式。当用户提交数据时,表单对象的onSubmit方法就会被调用,在该方法里就可以对用户的输入进行检查。常用的检查有是否必需、最大/小长度、是否字符、是否数字、email地址、IP地址是否正确、是否匹配一个正则表达式等。

CGI程序的开发
    CGI程序的工作一般就是接收表单数据,根据应用需求进行数据处理,最后根据处理结果生成新的页面返回给浏览器。表单数据一般是以POST方法提交给服务器,由CGI程序获得,程序根据元素名字/值中的元素名字来区分数据,完成数据处理后,再读取相应的模板文件,根据注释标记将对应的数据填充到HTML文本中去,生成最后的页面返回给浏览器。

    程序一般逻辑为:

    1.  安全性检查,是否允许运行脚本;
    2.  处理用户提交的数据,根据元素名字/值中的元素名字来区分数据,然后根据应用需求进行数据处理;
    3.  将处理结果填充表单,根据注释标记将对应的数据填充到HTML文本中去,生成最后的页面返回给浏览器。
    关于具体的代码实现细节,用户可以参考《嵌入式Linux系统开发详解-基于EP93XX系列ARM》一书的相关章节。(全文完)

i.MX6ULL开发板移植Boa服务器指南 Boa是一款轻量级Web服务器,专为嵌入式系统设计,具有资源占用低、性能高效的特点。其工作原理基于单进程模型,通过减少上下文切换开销提升响应速度。在嵌入式开发中,Boa服务器常与CGI接口配合使用,实现Web页面与硬件设备的交互。这种技术组合特别适合智能家居、工业控制等物联网应用场景。本文以i.MX6ULL开发板为例,详细介绍了从交叉编译到部署的完整移植流程,包括CGI程序开发、Web界面设计等关键技术环节,为嵌入式Web服务开发提供实践参考。 阅读详情

相关推荐

嵌入式Boa Web服务器搭建与优化指南

Web服务器作为网络应用的核心组件,其轻量化实现对于嵌入式系统至关重要。Boa作为单进程设计的轻量级服务器,通过精简代码结构和高效资源管理,在保持HTTP/1.1、CGI支持等核心功能的同时,实现了仅70KB的超小体积。这种特性使其成为工业控制、物联网终端等资源受限场景的理想选择。在实际部署中,通过交叉编译适配ARM架构,配合NFS文件共享和Buildroot定制系统,可快速构建嵌入式Web服务解决方案。针对Cortex-A7等主流嵌入式平台,优化后的Boa配置可实现200+并发处理能力,内存占用控制在5M

weixin_42174098的博客 519

嵌入式WEB服务器BOA的移植方法211034328

本文摘自作者《嵌入式Linux系统开发详解-基于EP93XX系列ARM》一书的相关章节。  随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。本节主要介绍

bisword的专栏 2668

智能物流仓储项目(十)——CGI、BOA、HTML之间的关系

综上所述,CGI 是一种协议,用于在 Web 服务器和应用程序之间传递数据。在使用 Boa 提供 Web 服务时,可以编写 HTML 文件作为网页的内容,通过 CGI 协议调用外部程序来生成动态内容,并将其嵌入到 HTML 中返回给客户端。Boa: Boa 是一个基于 CGI 的轻量级 Web 服务器软件,用于提供 Web 服务。Boa 实现了 CGI 规范,可以通过 CGI 协议调用外部程序来生成动态内容,并将其返回给客户端。CGI: CGI 是一种标准,用于在 Web 服务器和应用程序之间传递数据。

weixin_51332399的博客 601

嵌入式web服务器BOA+CGI+HTML+MySQL项目实战——Linux

准备环境 操作系统: Ubuntu12.04 LTS 环境搭建: 需要 BOA,Apache,CCGI,MySQL,GCC Linux下嵌入式Web服务器BOA和CGI编程开发 数据库的相关知识——学习笔记 的三 mysql中文乱码问题解决 / C程序插入仍是乱码解决 / 卸载重装教学 扩展: 我还用了bootstrap框架,CSS/JS 使用方法 环境准备好后,我们在 /var/www 下写HT...

Love丶伊卡洛斯 1万+

boa(web服务器)之交叉编译、移植、cgi、文件上传篇

boa简介 BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器。 源代码开放、性能高。由于它是一个单任务的Web服务器,只能一次完成用户的请求,而不会fork出新的进程来处理并发的链接请求。但是Boa支持Cgi,能够为Cgi程序fork出一个进程来执行相应的客户请求。 交叉编译: 进入源码根目录,运行以下两条命令: ./configure make CC=编译链(例如:arm-himix200-linux-gcc) 交叉

weixin_40732273的博客 3747

人工智能-项目实践-html-嵌入式web服务器BOA+CGI+HTML+MySQL项目实战-Linux.zip

人工智能-项目实践-html-嵌入式web服务器BOA+CGI+HTML+MySQL项目实战——Linux 使用到的软件和技术 BOA服务器,CGI,CCGI,MySQL,SQLite。C,HTML,CSS,JS,SQL 具体功能讲解 1、运行BOA服务器 (来到BOA目录下的src,终端输入 sudo ./boa 启动服务) 2、打开浏览器,输入localhost:端口号/login.html (文件都要放在 /var/www 目录下) 3、登录页面,注册页面。(登录注册将表单发送给对应CGI文件,CGI文件和MySQL数据库交互(运行MySQL,建好数据库和表),将结果输出) 4、登录成功后会来到 配置页面。(对相应参数进行配置,可自由发挥,同样HTML的表单发送给CGI程序,打开系统文件,写入相应参数,重启服务)

嵌入式linux开发板web服务器搭建1——Boa移植

嵌入式linux开发板web服务器Boa移植笔记 环境 Ubuntu10.04.4 boa-0.94.13 主要步骤 主要参考https://wenku.baidu.com/view/8d5dd954f01dc281e53af08f.html和https://blog.youkuaiyun.com/lyiya/article/details/50865947两篇博客的步骤。 从http://www.boa....

积跬步以至千里 3345

用FPGA在HDMI上显示自定义字符:从COE文件到OSD叠加的保姆级教程

本文详细介绍了如何在FPGA上实现HDMI视频流的OSD字符叠加技术,从COE文件生成到动态区域控制的完整流程。通过Verilog代码示例和实战技巧,帮助开发者掌握字符ROM设计、像素坐标追踪和动态混合等核心技术,适用于视频监控、系统状态显示等应用场景。

weixin_28720767的博客 231

嵌入式Linux:ARM开发板移植Boa搭建Web服务器

1、官网www.boa.org下载boa-0.94.13.tar.gz 2、将整个压缩包放到虚拟机ubuntu下解压,进入boa-0.94.13/src/目录执行./configure命令生成Makefile 3、修改Makefile内容,修改交叉编译工具,根据自己配置的开发板环境,这里使用arm-linux- 4、修改compat.h后make编译 5、编译得到boa文件之后执行arm-linux-strip boa瘦下身 6、把boa文件拷贝到开发板/bin/目录上 7、开发板分别创建/etc/b

weixin_44498318的博客 1836

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2632

Codesys—Modbus RTU称重变送器通讯案例

Codesys控制器使用标准的Modbus库,与支持ModbusRTU的称重变送器进行通讯的案例

原来你也__的博客 2739

嵌入式linux开发板web服务器搭建2——CGIC移植

移植完Boa后,还需要利用C语言的CGI库“CGIC”,并结合html完成Web开发,实现前端网页和设备的数据交互。 主要步骤 参考https://wenku.baidu.com/view/8d5dd954f01dc281e53af08f.html中的描述,主要步骤如下: CGIC简单测试 先编写个test.c程序,如下: #include <stdlib.h> int main(...

积跬步以至千里 3045

使用 Visual Studio Code 搭建 SAP UI5 本地开发环境

工欲善其事,必先利其器。时至今日,SAP 提供了非常多的 SAP UI5 开发工具,既包含本地搭建的,也包含浏览器里远端使用的工具,比如 WebIDE 和 Business Application Studio. 我们访问下面这个链接,就能找到所有这些工具的安装或者配置步骤: https://tools.hana.ondemand.com/#sapui5 如果想选择本地开发,SAP 推荐的工具是 Visual Studio Code,也就是本文要介绍的内容。 也可以下载 WebIDE 的本地安装包,将其安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1万+

BOA服务器的搭建以及移植到开发板

一、 概述 硬件资源:IAC-335X-Kit 开发板 宿主机:ubuntu16.04 交叉编译工具:arm-arago-linux-gnueabi 二、 BOA搭建 先确定交叉编译工具是否安装正确。 安装需要工具bison,flex sudo apt-get install bison flex 解压boa-0.94.13.tar.gz tar –zxvf boa-0.94.13.tar.g...

1215

YOLOv11改进 | Neck篇 | 双向特征金字塔网络BiFPN助力YOLOv11有效涨点

本文给大家带来的改进机制是BiFPN双向特征金字塔网络,其是一种特征融合层的结构,也就是我们本文改进YOLOv11模型中的Neck部分,它的主要思想是通过多层级的特征金字塔和双向信息传递来提高精度。本文给大家带来的结构可以让大家自行调节网络结构大小,同时能够达到一定的轻量化效果,为什么发BiFPN呢因为它算是YOLO系列改进中的常青树了,大家可以借鉴它的双向特征思想来创新自己的Neck结构本文的BiFPN通过yaml文件配置可以让大家自行调配其结构。

Snu77的博客 9095

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图、天地图)

QGis软件 —— 2、QGis加载在线地图两种方式(谷歌地图)

1万+

webserver—BOA和CGIC移植ZYNQ_LINUX过程

linux下最常用的web服务器:Apache。开源。 嵌入式web服务器主要有:lighttpd、thttpd、shttpd、BOA等 CGI : Common Gate Intetgace 是一段运行在web服务器上的程序,提供同客户端html页面的接口。 CGIC:是一个支持CGI开发的开放源码的标准C库,目的帮助用户进行大量字符串处理。 对比了一下:决定使用BOA,资料教程也比较多。 ...

weixin_41922484的博客 2051

2025.06.16【转录组】|Ribo-seq数据流程详解(二 基因组比对)

本文详细介绍了Ribo-seq数据分析中的比对流程,包括环境准备、STAR索引构建、比对参数设置及结果统计可视化。通过samtools和R脚本实现比对质量评估,提供常见问题解决方案和关键指标解读。该流程强调比对参数优化和质量控制,为后续翻译组学分析奠定基础。

1976

嵌入式web服务器boa的编译移植

Linux下Boa服务器移植,交叉编译boa并成功移植到FL2440开发板上,并且CGI程序运行正常。 主机环境:redhat9交叉编译器:arm-linux-gcc 3.4.1 BOA版本:0.94.13平台:s3c2440一:下载源码:从http://www.boa.org/官方网站下载源码,并将源码放置在/src 目录下。 [root@ EmbedSky ~]# cd /usr/src

transistor0的专栏 3727

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

arm-linux的boa服务器移植

前期准备 下载boa-0.94.13.tar.gz 配置开发板对应的交叉编译链 编译boa 输入命令 ./configure --host=arm-linux 修改Makefile,vim Makefile,设置参数CC=arm-none-linux-gnueabi-gcc,CPP=arm-none-linux-gnueabi-gcc -E (根据自己的交叉编译链设置) vim compat...

qq_40933044的博客 476

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

移植Boa Web服务器到ARM-Linux系统

本次移植的主要参考资料: 1、 《嵌入式Web服务器移植 》是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!! 2、 《构建嵌入式Linux系统》的第十章 设置网络服务 中的Boa移植部分。 一、B

dongliqiang2006的专栏 752

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux上怎样安装boa服务器,移植Boa Web服务器到ARM-Linux系统

1、 《嵌入式Web服务器移植 》是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!!2、 《构建嵌入式Linux系统》的第十章 设置网络服务 中的Boa移植部分。一、Boa程序的移植1、下载Boa源码下载地址:http://www.boa.org/目前最...

weixin_42098104的博客 442

手把手移植物联网项目到arm开发板笔记

首先我使用的交叉编译器为。

weixin_52849254的博客 1535

boa linux arm修改网卡,移植Boa Web服务器到ARM-Linux系统

本次移植的主要参考资料:1、 《嵌入式Web服务器移植 》 是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!!我所做的修改和遇到的问题将在文章最后贴出来。2、 《构建嵌入式Linux系统》 的第十章 设置网络服务 中的Boa移植部分。一、Boa程序的移植...

weixin_35715474的博客 445
上一篇: 微波电路阻抗
下一篇: linux tar命令
ly0303521
博客等级 码龄17年 135粉丝 90原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值