boa常见错误整理

错误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 notgive 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: log.c:73 unable to dup2 the error log:bad filedescriptor
修改 src/log.c
找到:if (dup2(error_log, STDERR_FILENO) == -1)
{ DIE("unable to dup2 the error log");}
修改为:
 
错误4:Could not open boa.conf for reading这个是因为根目录定义好了后,启动boa就要去这个根目录下读取boa.confmime.types,因此根目录下必须有这两个文件。
 
错误5:boa.c:226 - icky Linux kernel bug!: Success这是从log/boa/error_log中读到的。在cgi中使用root权限时出现。
注意:配置文件中要给ROOT权限,注释以下代码是允许ROOT权限访问BOA。
注释掉下面语句:
  if (setuid(0) != -1)
  { DIE(”icky Linux kernel bug!”); }
  打开正确后,error_log将显示boa: server versionBoa/0.94.13 [20/Sep/2010:08:26:24 +0000] boa: server built Sep 202010 at 16:20:39. [20/Sep/2010:08:26:24 +0000] boa: starting serverpid=28683, port 80 同时一定要注意权限问题,配置里的用户一定要和实际一致
在那些文件拷贝过程中,要注意拷贝到/bin,/var/www/cgi-bin下后,文件权限需要做修改,用sudo chmod 755文件名,这时才可用。

错误6:打开网页时,网页中的图片无法显示
将存放图片的子目录修改成/var/www/img即可 或者修改boa中图片解析的路径
 
错误7:在测试cgi脚本时,浏览输出下述错误:
502 Bad Gateway
The CGI was not CGI/1.1 compliant
解决方法:注意CGI程序符合HTML文件格式,结尾处'\n'等细节问题,这类错误不好调试。
 
错误8:boa.c:211 - getpwuid: No such file or directory
修改src/boa.c
找到:if (passwdbuf == NULL) { DIE(”getpwuid”);}
if (initGroups(passwdbuf->pw_name,passwdbuf->pw_gid) == -1)
{ DIE(”initgroups”);}
修改为:
#if 0
if (passwdbuf == NULL) { DIE(”getpwuid”);}
if (initgroups(passwdbuf->pw_name,passwdbuf->pw_gid) == -1)
{ DIE(”initgroups”);}
#endif
 
错误9:当运行./boa时出现Cannot open /var/log/boa/access_log forlogging: logfile open: No such file or director的提示。
出现这个提示是因为,在/var/log文件夹下没有boa文件夹,所以在该目录下建立一个boa就ok。建立方法: mkdir/var/log/boa。
(路径根据boa.conf路径填)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值