问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在linux中移植嵌入式Boa服务器时出错

发布网友 发布时间:2022-04-12 17:58

我来回答

2个回答

懂视网 时间:2022-04-12 22:19

写在前面 : boa 相关目录 : 1. boa.conf 的存放目录 : 默认 boa.conf 是在 /etc/boa.conf 目录的, boa 运行时会自动去找 /etc/bon.conf 文件。 这个设定是在 define.h 文件中定义的,可在编译之前进行修改。 2. log 目录 : 分为 Errorlog 和 AccessLog 两个

写在前面: boa相关目录:

1. boa.conf 的存放目录:

默认boa.conf是在/etc/boa.conf目录的,boa运行时会自动去找/etc/bon.conf文件。

这个设定是在define.h文件中定义的,可在编译之前进行修改。

2. log目录: 分为 Errorlog 和 AccessLog 两个目录,可在boa.conf中修改。

如:

ErrorLog /var/log/boa/error_log

AccessLog /var/log/boa/access_log

3. html文件存放目录, 可在boa.conf文件中修改。

如: DocumentRoot /var/www

4. cgi脚本存放目录, 可在boa.conf文件中修改。

如: ScriptAlias /cgi-bin/ /var/www/cgi-bin

5. mime.types存放目录 , 可在boa.conf文件中修改。

如: MimeTypes /etc/mime.types

=======================================================

移植boa服务

=======================================================

一. 编译boa程序

1. www.boa.org下载boa-0.94.13.tar.gz

2. 解压: tar –zxvf boa-0.94.13.tar.gz

3. 进入boa-0.94.13/src目录, 执行./configure

4. make

编译时用2.95.3以上的版本会出错:

util.c: 100: 1: pasting “t” and “->” does not give a valid preprocessing token make: [util.o] Error1

解决方法:

方法1>. 修改compat.h中的

#define TIMEZONE_OFFSET(foo) foo## ->tm_gmtoff

为:

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

方法2>. 改用2.95.3版本的编译器。

二. 修改配置文件boa.conf

1. 建立/etc/boa目录, 并复制boa.conf到/etc/boa目录下,并按照以下步骤进行修改。

2. 修改访问权限: 修改User nobody 为 User 0 ; 修改Group nogroup 为 Group 0

3. 设定日志目录:boa日志有两部分,Errorlog 和 AccessLog

一般情况下为/var/log/boa/error_log 和 /var/log/boa/access_log两个文件。所以根据自己的情况情况设置日志目录:

ErrorLog /var/log/boa/error_log

AccessLog /var/log/boa/access_log

(注意:这里/var/log/boa目录必须为可写,否则会出项错误:log.c:73 – Unable to dup2 the error log: Bad file r.)

4. 设置html文件目录: DocumentRoot /var/www

5. 设置默认首页: DirectoryIndex index.html

6. 设置cgi脚本目录: 将

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin

修改为

ScriptAlias /cgi-bin/ /var/www/cgi-bin

三. 根据第二步设置建立相关文件夹并放入文件:

1. 根据(第二.3步)的设置建立/var/boa 文件夹 。

2. 根据(第二.4步)的设置建立/var/www 文件夹 , 并在此目录下存放html文件(包括index.html文件)。

3. 根据(第二.6步)的设置建立/var/www/cgi-bin 文件夹 , 并存放一些用来测试的cgi脚本。

四. OK,运行boa程序。

在windows 下通过http://172.20.223.151这种形式访问,进行测试。

五. 移植到开发板

1>. (第一.3步)操作完成之后,修改Makefile文件:

将:

CC = gcc

CPP = gcc -E

该为:

CC = arm-linux-gcc

CPP = arm-linux-gcc -E

make即可。

2>. 拷贝PC上/etc/mime.types文件到开发板/etc目录下

(或者将boa.conf文件中 MimeTypes /etc/mime.types 修改为: MimeTypes /dev/null )

六. 常见错误:

1>. 错误1: gethostbyname:: No such file or directory

解决办法: 修改boa.conf 去掉 ServerName www.your.org.here 前的注释符号(#)

2>. 错误1: util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o]

热心网友 时间:2022-04-12 19:27

第一步完成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
#作为哪个用户组运行,即它拥有该用户组的权限,一般都是nogroup,需要在/etc/group文
#件中有nogroup组
Group nogroup
#当服务器发生问题时发送报警的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目录下。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
火狐浏览器如何将网页保存为PDF文件 【亲测好用】网页下载保存为pdf u盘坏芯片坏能修吗-(u盘芯片坏了能修吗) 快捷糖水目录 微信上如何和男人撒娇? 去日本旅游要带什么好? 年月日电脑怎么设置表格excel表格出生日期列如何设置为年月日格式 ...一定要对女主好,宠她。要打包下载,谢谢亲。 空气净化器滤芯有酸味的原因 不同种类的蛋糕分别代表什么含义呢? 苹果手机打电话进来提示正在通话中,第二次就好了,是怎么回事呢? 拳皇97东丈的女朋友是谁 我是1994年生的,我找了一个1997年生的女朋友,我可以和她发生关系吗? 我90年找了一个97年的女友,爱得死去活来、山无棱天地合才敢与君绝,但我父母强烈反对,我要怎么办 我女友97年大我一岁,但她去年结婚三个月后离婚,一般女生这样的经历是怎么样的心理情况? 女朋友97年的,算成熟了吗? 女友97年的我98年我们在一起一年多了女友这一年多相处的不好也不坏她总是想早点结婚生孩子然后全职在? 拳皇97故事里与京有宿世姻缘的女友阿雪是谁 我是2003年生的,我找了一个1997年生的女朋友,我可以和她发生关系吗? 焉栩嘉绯闻女友97是演员潘成然,两人之间有何互动? ⅴivOX23手机开锁就自动弹出下载软件各种广告需要怎么操作关闭 如何将boa上的程序移植到apache上 平时不写作业 等检查的时候再努力写的怎么形容? 遇到不会的作业,是不是要查出来写上去 不想写作业但是明天老师要检查怎么办 不写作业检讨书怎么写 作业不会做在网上又查不多怎么办 我上六年级,老师要检查作业,怕被老师罚,不会写怎么办? 快易典学习机H18密码忘了怎么办忘记? 忘了密码怎么恢复出厂设置 草剃京的女朋友在拳皇97中已经死了吗 拳皇97的黄毅为什么和女朋友香香分手 有知道的么 iphone手机 接收不了别人的来电,但对方打进来的时候是一直通话中的原因是什么? 拳皇97小雪到底是谁 我97年的,女朋友91年的,我们相差六岁,你说我能以后能结婚在一起吗 我97年,女朋友95年,我跟她在微博的相亲平台认识的,认识的第一天晚上我们就见了面,一起吃了饭? 苹果手机除了在通讯录好友外总是告诉对方在通话中是怎么回事? 互联网基金会涨吗 河南妹子有什么性格特征? 河南的女孩有什么特点?说说优点?可以跟其他省的女孩区分的特点? 河南女生的性格 河南女孩怎么样? 河南人的性格特点是什么? 东北女人vs河南女人,哪个好?性格各是怎样的? 河南每个城市的人的性格特点有什么不同? 怎么追一个河南的女孩子? 河南的女孩子基本上是怎样的性格? 河南洛阳的女孩有什么特点?熟悉的说一下。是不是基本不嫁外地? 手机开腾讯视频会议同时接电话,腾讯会议中的人能听到吗? 济南植物园地址?