设为首页 加入收藏

TOP

Real6410移植Boa Webserver详解
2014-11-24 12:55:57 来源: 作者: 【 】 浏览:0
Tags:Real6410 移植 Boa Webserver 详解

boa源码包:


下载在Linux公社的1号FTP服务器里,下载地址:


用户名:www.6688.cc


在 2012年LinuxIDC.com\5月\Real6410移植Boa Webserver详解


下载方法见 http://www.linuxidc.net/thread-1187-1-1.html


boa的配置不是太复杂,就是有点折腾,设置arm-linux-gcc的过程这里不再详述。


解压缩boa的源码包:



将Makefile的31~32行内容:


PS:这里跳转到31~32行,可以在vi下直接31+G,这样按,也可以:set nu,这样显示行数,方便点
CC = gcc
CPP = gcc –E

应用(在交叉编译时使用):
CC = arm-linux-gcc
CPP = arm-linux-gcc –E

然后输入make命令进行编译,在src目录下就会生成boa文件。


PS:这里Make可能会出现错误,这里大致总结下


错误1:
bison -y -d boa_grammar.y
gcc -g -O2 -pipe -Wall -I. -c -o y.tab.o y.tab.c
y.tab.c: In function ‘yyparse’:
y.tab.c:1295: warning: implicit declaration of function ‘yylex’
lex boa_lexer.l
make: lex: Command not found
make: *** [lex.yy.c] Error 127

解决办法:由于没有flex,出现了缺少lex.yy.c文件的报错。只要安装上flex即可。
$ sudo apt-get install flex


错误2:
request.c: In function ‘get_request’:
request.c:84: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness
gcc -g -O2 -pipe -Wall -I. -c -o response.o response.c
gcc -g -O2 -pipe -Wall -I. -c -o select.o select.c
gcc -g -O2 -pipe -Wall -I. -c -o signals.o signals.c
gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
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



错误3:Could not open boa.conf for reading 这个是因为根目录定义好了后,启动boa就要去这个根目录下读取boa.conf mime.types,因此根目录下必须有这两个文件。




错误4:boa.c:226 - icky Linux kernel bug!: Success 这是从log/boa/error_log中读到的,打没打开boa从这个文件就可看到。注释掉下面语句: if (setuid(0) != -1) { DIE(”icky Linux kernel bug!”); } 为 #if 0 if (setuid(0) != -1) { DIE(”icky Linux kernel bug!”); } #endif打开正确后,error_log将显示boa: server version Boa/0.94.13 [20/Sep/2010:08:26:24 +0000] boa: server built Sep 20 2010 at 16:20:39. [20/Sep/2010:08:26:24 +0000] boa: starting server pid=28683, port 80 同时一定要注意权限问题,配置里的用户一定要和实际一致,在那些文件拷贝过程中,要注意拷贝到/bin,/var/www/cgi-bin下后,文件权限需要做修改,用sudo chmod 755 文件名,这时才可用。




然后就可以把boa传输到6410板子上,这里我采用Nfs的方式直接挂载(如果遇到无法cp到板子本地目录的情况,需要把boa文件目录chmod -R 777,这样就能复制了


接着就是要修改boa.conf文件


这里只给出一种比较简单的修改方式


(1)Group的修改
修改 Group nogroup
Group 0


(2)user的修改
修改 User nobody
User 0


(3)ScriptAlias的修改(这里如果没有cgi-bin文件夹需要创建以下)
修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /cgi-bin/ /www/cgi-bin/


(4)DoucmentRoot的修改(这个是你网页文件夹放置的地方,可以按你自己放的改
修改DoucmentRoot /var/www
DoucmentRoot /www


(5)ServerName的设置
修改#ServerName www.your.org.here
ServerName www.your.org.here
否则会出现错误“gethostbyname::No such file or directory”


(6)AccessLog修改
修改AccessLog /var/log/boa/access_log
#AccessLog /var/log/boa/access_log
否则会出现错误提示:“unable to dup2 the error log: Bad file descriptor”


(7)ErrorLog修改(PS:这里这种修改方法是不保存日志的,比较偷懒)
修改为ErrorLog /dev/null


ErrorLog /var/log/boa/error_log,错误日志文件,如果没有以/开始,则表示从服务器的根路径开始。如果不需要错误日志,则用/dev/null。在下面设置时,注意一定要建立/var/log/boa目录


最后运行,就Ok了


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Real6410 QT4开发环境配置详解 下一篇使用Python创建xml文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)
·索引堆及其优化 - 菜 (2025-12-24 20:18:50)
·Shell 中各种括号的 (2025-12-24 19:50:39)
·Shell 变量 - 菜鸟教 (2025-12-24 19:50:37)