移植boa服务器和错误指南

来源:互联网 发布:巨人网络最新股价 编辑:程序博客网 时间:2024/06/05 16:14
ubuntu 配置 boa 服务器

ubuntu上编译使用boa服务器的教程文章,已经有很多了,博客上也有很多人写了,我就不赘述了,在这里贴出几处初次使用boa的朋友可能遇到的问题
执行 boa
检查 error_log 里面的内容,有如下错误:
boa.c:194 - unable to bind: Address already in use
因为是在pc机上,默认的boa.conf 里面Port的端口设置为 80,因此运行 boa时会有如上错误,可以在 error_log文件里面查看到
解决办法:修改 boa.conf 里面 的 port 值为 8080(可指定其它未被使用的)保存即可。
再次尝试,浏览器地址栏里输入:192.168.1.111:8080后,www目录下的 index.html 访问正常
接下来测试cgi程序:
浏览器地址栏里输入:192.168.1.111:8080/cgi-bin/test.cgi 有可能遇到 bad gateway 的错误,或者 在error_log里面提示:
request from 192.168.1.119 "GET /favicon.ico HTTP/1.1" ("/var/www/favicon.ico"): document open: No such file or directory
[01/Aug/2011:10:04:37 +0000] request from 192.168.1.119 "(null)" ("(null)"): header read: Connection reset by peer
这时,需要检查一下 boa.conf 里面的 User 和 Group 后面的设置,比如默认的 User后面 跟的是 nobody,我们需要把Group后面的参数 修改为 0,保存
kill -9 pid(boa)
重新启动boa,再次通过浏览器访问cgi,访问成功!
注:做嵌入式开发板上的boa移植时,这里确实如很多博友写的,修改 User 及 Group 后面的参数为 0,可是初次在ubuntu里面使用boa的朋友可能就忽略了这个



BOA移植中发现的错误
1、修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
否则会出现错误。
 
2、浏览器报错:502 Bad Gateway The CGI was not CGI/1.1 compliant问题
日志文件中的报错是:cgi-header:unable to find LFLF
1>检查你的 printf("Content-type: text/html\n\n");是否少了\n;

2>程序写错,比如:而是我在使用printf打印一个整数的时候,我使用了s%,后来改成d%就可以了。。。

3>修改执行文件的权限,chmod 777 *
 
3.检查 error_log 里面的内容,有如下错误:
boa.c:194 - unable to bind: Address already in use
因为是在pc机上,默认的boa.conf 里面Port的端口设置为 80,因此运行 boa时会有如上错误,可以在 error_log文件里面查看到
解决办法:修改 boa.conf 里面 的 port 值为 8080(可指定其它未被使用的)保存即可。

再次尝试,浏览器地址栏里输入:192.168.1.111:8080后,www目录下的 index.html 访问正常



原创粉丝点击