《在嵌入式linux下搭建Boa Webserver.doc》由会员分享,可在线阅读,更多相关《在嵌入式linux下搭建Boa Webserver.doc(4页珍藏版)》请在三一文库上搜索。
1、在嵌入式linux下搭建Boa Webserver1、嵌入式Web的应用。在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的C/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。2、嵌入式服务器的选择。由于嵌入式设备资源一般都比较有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux下最常用的如Apache等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web服务器在存贮空间和运行时所占有的内存空间上都会非常
2、适合于嵌入式应用场合。常见的嵌入式Web服务器主要有:lighttpd、thttpd、shttpd和BOA等。3、Boa是一个非常小巧的web服务器,其可执行代码只有约60Kb,它是一个单任务的服务器,只能依次完成用户的请求,而不会fork出新的进程处理并发的连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行,Boa设计目标是速度与安全。硬件环境:SBC-S2416单板机软件环境:1、PC端:win7下VirtualBox虚拟机+xubuntu系统。具备基本的GCC编译环境,能够执行configure产生Makefile;系统中已搭建好交叉编译环境。相比于普通的PC机,嵌入
3、式的硬件资源相当的有限,不可能进行本地的开发。因而,嵌入式的软件开发和调试过程通常是在PC机上实现的。这样就形成了一套在PC机上交叉编译,然后生成目标机平台的格式,最后在目标机上执行的开发流程,也就是所谓的交叉编译环境。2、移植嵌入式Linux系统到开发板上。Boa搭建过程:1、下载boa-0.94.13.tar,执行tar解压命令2、在解压后的src目录下,执行./configure生成MakeFile3、MakeFile中31、32行,路径改成交叉编译路径。CC = /usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gccCPP =
4、 /usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc -E4、执行Make编译命令,生成可执行文件boa,可以用file boa查看。出现的错误:(1)提示:make: yacc: 命令未找到 make: * y.tab.c 错误127原因:没有安装yacc解决方法:执行apt-get install bison命令(可能需要管理员权限sudo)。或者下载byacc-1.9.tar.gz,编译生成yacc,拷贝到/usr/local/bin/下。(2)提示:make: lex: 命令未找到 make: * lex.yy.c 错误
5、127原因:没有安装lex程序解决方法:执行apt-get install flex命令。或者下载flex-2.5.37.tar.gz,编译生成flex,然后改名为lex,将lex拷贝到 /usr/local/bin/下。(3)提示:make *util.0 错误1解决方法:编辑src下的compat.h文件,大概120行处的#define TIMEZONE_OFFSET(foo) foo#-tm_gmtoff 改为#define TIMEZONE_OFFSET(foo) foo-tm_gmtoff(4)提示:解决方法:编辑src下的boa.c文件,注释掉225-227行#if 0if (se
6、tuid(0) != -1) DIE(icky Linux kernel bug!);#endif5、将boa拷贝到目标板的/bin下。(etc/boa下?)6、配置。参考链接。修改boa-0.94.13文件夹下的boa.conf,放入etc/boa下(此目录在src下difines.h文件中指定#define SERVER_ROOT /etc/boa),常见参数:Port端口User(48行)默认nobody,改为root?Group(49行)默认nogroup,改为root?ErrorLog(62行)默认/var/log/boa/error_log,需要手动建立/var/log/boa目录
7、AccessLog(74行)默认/var/log/boa/access_log,需要手动建立/var/log/boa目录(94行)ServerName your.here前注解#去掉 ?DocumentRoot(111行)默认/var/www,需手动建立目录DirectoryIndex(123行)默认indexlMimeTypes(155行)默认/etc/mime.types,需将虚拟机中该文件拷贝至目标机相同路径下ScriptAlias(193行)默认/cgi-bin/ /usr/lib/cgi-bin/,需手动建立目录,本文中修改至/var/www/cgi-bin7、程序运行。(如果boa搭建在虚拟机中,即非交叉编译,本文中要在目标板上搭建,执行$ ./boa-c pwd,-c表示指定boa.conf的路径,默认的路径是/etc/boa/,pwd得到的是当前路径。参见链接。)目标机执行 boa8、相关命令。fdisk -l 显示挂载的存储设备,本文用来找U盘mount /dev/U盘名 /mnt 复制U盘内容到mntcp 文件 路径 复制ifconfig -a 查看网络信息,IP、MAC等mv 文件 路径 移动文件,本文用来重命名后记:想继续探索的问题:1、需要管理员权限的命令,前面加sudo后,输入密码可执行。Linux的用户名和用户组权限是怎么回事。
链接地址:https://www.31doc.com/p-3408328.html