大家好,我是ZhengN,这次我将在10分钟内教大家如何使用开发板搭建一个web服务器。之前分享的文章:常见的嵌入式web服务器有哪些?几个可以在嵌入式中使用的网络服务器是共享的。嵌入式Web服务器是将Web服务器移植到嵌入式系统中的服务器。它仍然基于http文本协议进行通信,具有标准的接口形式。对于客户端来说,访问嵌入式Web服务器与访问普通的Web服务是一样的。在实际工作中,我们也在板子上搭建了一个web服务器,这给我们调试带来了一些方便。我们可以通过网页与看板进行交互。当没有显示屏时,该板也可以作为显示功能的解决方案。Web服务器—boa本文演示如何将boa移植到开发板上。boa是一个只有70KB可执行代码的小型Web服务器,占用系统资源少,快速安全。boa官网:www.boa.org下载版本:boa-0.94.13.tar.gzBoa交叉编译下载得到boa-0.94.13.tar.gz,解压后进入boa-0.94.13/src目录下,执行以下命令GeneratetheMakefile:./configure修改Makefile并设置交叉编译器。找到CC和CPP变量修改为:CC=arm-linux-gnueabihf-gccCPP=arm-linux-gnueabihf-gcc-E执行make编译。编译报错如:arm-linux-gnueabihf-gcc-g-O2-pipe-Wall-I.-c-oresponse.oresponse.carm-linux-gnueabihf-gcc-g-O2-pipe-Wall-I.-c-oselect.oselect.carm-linux-gnueabihf-gcc-g-O2-pipe-Wall-I.-c-osignals.osignals.carm-linux-gnueabihf-gcc-g-O2-pipe-Wall-I.-c-outil.outil.cInfileincludedfromboa.h:50:0,fromutil.c:26:util.c:Infunction'get_commonlog_time':util.c:100:39:error:pasting"t"and"->"doesnotgiveavalidpreprocessingtokentime_offset=TIMEZONE_OFFSET(t);^compat.h:120:30:note:indefinitionofmacro'TIMEZONE_OFFSET'#defineTIMEZONE_OFFSET(foo)foo##->tm_gmtoff^~~:recipefortarget'util.o'使compat.h失败file:#defineTIMEZONE_OFFSET(foo)foo##->tm_gmtoff改为:#defineTIMEZONE_OFFSET(foo)foo->tm_gmtoff重新编译,如果可以编译,则在当前路径生成boa可执行文件:boaconfigurationputsUbuntu的/etc目录下面的mime.types文件,转移到开发板的/etc目录下。注意:这是MIME(MultipurposeInternetMailExtensions),这是Web服务器支持的规范。在开发板的/etc目录下创建一个boa文件夹(用于存放boa的配置文件和日志文件):cd/etcmkdirboa在开发板的根目录下创建一个www文件夹,在其下创建一个文件夹cgi-bin目录www目录(用于存放后面的页面和交互代码):mkdir-p/www/cgi-bin将boa-0.94.13目录下的boa.conf文件转移到开发板的/etc/boa目录下。scpboa.confroot@192.168.1.10:/etc/boa将boa可执行程序转移到开发板的bin目录下。scpboaroot@192.168.1.10:/bin在开发板/etc目录下创建组文件:cd/etctouchgroup用vi编辑器打开开发板/etc/boa目录下的boa.conf文件。需要做如下修改:①把里面的Groupnogroup改成Group0。②ErrorLog和AccessLog这两行,指定日志文件的路径,将日志保存到/etc/boa目录下,修改如下:ErrorLog/etc/boa/error_log#PleaseNOTE:Sendingthelogstoapipe('|'),如下所示,#issomewhatexperimentalandmightfailunderheavyload.#"Usuallibcimplementsofprintfwillinstallthewhole#processiftherecivingendofapistopsreading."#ErrorLog"|/usr/sbin/cronolog--symlink=/var/log/boa/error_log/var/log/boa/error-%Y%m%d。log"#AccessLog:Thelocationoftheaccesslogfile.Ifthisdoesnot#startwith/,itisconsideredrelativetotheserverroot.#Commentoutorsetto/dev/null(lesseffective)todisable#Accesslogging.AccessLog/etc/boa/access_log③将#ServerNamewww.your.org.here行更改为ServerNamewww。你的。org.here:#ServerName:thenameofthisserverthatshouldbesentbackto#clientsifdifferentthathatreturnedbygethostname+gethostbynameServerNamewww.your.org.here④然后找到DocumentRoot/var/www这一行,改成DocumentRoot/www:DocumentRoot/www⑤然后找到ScriptAlias/cgi-bin//usr/lib/中的cgi-bin/行改为ScriptAlias/cgi-bin//www/cgi-bin/:ScriptAlias/cgi-bin//www/cgi-bin/以上是boa.conf配置文件中需要修改的地方。最后进入我们之前创建的www目录,然后使用viindex.html命令创建一个index.html网页文件进行测试,可以在网上搜索一些简单网页设计的教程。这里我们设计一个简单的网页如:boaservertest嵌入式大杂烩
正N本公众号专注于嵌入式技术,包括但不限于C/C++、嵌入式、物联网、Linux。