linux boa post方式失败,移植boa出现的错误及解决方法

移植boa的一大把,我就不罗嗦了,这个就挺好:

实际上boa太老了,据说要用2.95.3的才好用,但现在编译器都不断更新,就是boa断货,他不更新,也没办法啊,是不是作者不想把成果公开了?呵呵。因此会出现至少2个错误,请看:

1、configure: error: can not run test program while cross compiling

解决方法:参考这个哥们写的,通用:

在交叉编译的时候总是使用configure --host=arm-linux 嘿嘿但是在CONFIGURE中有很多的测试程序是不可以在HOST上运行的就会出现: error: cannot run test program while cross compiling

类似的错误,可以使用CACHEFILE解决这个问题,还要谢谢ABSURD兄的文章给我的指导。

我是这样解决的第一步:记录下错误的地方如:checking abstract socket namespace... configure: error: cannot run test program while cross compiling

注意到abstract socket namespace在configure中查找abstract socket可以看到类似这样的结构

echo "$as_me:$LINENO: checking abstract socket namespace" >&5

echo $ECHO_N "checking abstract socket namespace... $ECHO_C" >&6

if test "${ac_cv_have_abstract_sockets+set}" = set; then

echo $ECHO_N "(cached) $ECHO_C" >&6

其中ac_cv_have_abstract_sockets是我们要查找的变量

使用echo ac_cv_have_abstract_sockets=yes>arm-linux.cache

然后

./configure --host=arm-linux --cache-file=arm-linux.cache

OK这样就搞定了

2、util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token

解决方法:

修改compat.h中的

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

为:

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

3、Could not chdir to "/etc/boa": aborting

解决方法:自己建立/etc/boa目录,把配置文件boa.conf拷贝进去

4、No such user:

把boa.conf的group和user都改为 0 即可

5、boa.c:211 - getpwuid: No such file or directory

这个需要看log输出才行,我的是 /var/boa_error_log

要改源代码了,定位/src/boa.c大约211行,注释掉如下:

#if 0

if (passwdbuf == NULL) {

DIE("getpwuid");

}

if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

DIE("initgroups");

}

#endif

6、icky Linux kernel bug!

定位/src/boa.c大约211行,注释掉如下:

/* test for failed-but-return-was-successful setuid

* http://www.securityportal.com/list-archive/bugtraq/2000/Jun/0101.html

*/

#if 0

if (setuid(0) != -1) {

DIE("icky Linux kernel bug!");

}

#endif

7、was not found on thisserver

估计很多人遇到这个,主要是ScriptAlias最后面忘记加斜杠“/”

例如,ScriptAlias /www/cgi-bin跟/www/cgi-bin/是不一样的,呵呵

8、502 Bad GatewayThe CGI was not CGI/1.1 compliant

原因有很多,不过我的既没有在

“在 cgi.c中的函数complete_env加入 my_add_cgi_env(req, "LD_LIBRARY_PATH", "/lib"); ”

也没有让cgi程序的makefile加CFLAG = -static

也没有说因为中文而导致,我的是cgi程序的第一个printf导致的,请看:

printf("Content-type: text/html;charset=gb2312/n/n");

这样的不行:

printf("%s%c%c /n","Content-Type:text/html;charset=gb2312",13,10);

但是lighttpd可以,吐血吧?

另外在cgi-bin目录好像访问不了htm等静态文件,否则也显示The CGI was not CGI/1.1 compliant,知道的大侠可以留个言告知下。

//

其他的错误估计就是Servername了,搜索吧,问题不大。

祝各位玩的愉快!BOA太老了,能不用真的就不用,烦死人!

最近在搞lighttpd,死活移植不上去,移植ok后运行又没反应!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在嵌入式 Linux 上使用 Boa 浏览器访问文件,您需要完成以下步骤: 1. 安装 Boa 服务器:您可以使用以下命令在嵌入式 Linux 上安装 Boa 服务器: ``` sudo apt-get install boa ``` 2. 配置 Boa 服务器:您需要编辑 Boa 服务器的配置文件 /etc/boa/boa.conf,以便 Boa 能够访问您想要浏览的文件。您可以使用以下指令编辑该文件: ``` sudo nano /etc/boa/boa.conf ``` 在该文件中,您需要将以下行注释掉: ``` # server_document_root /var/www ``` 并将以下行取消注释: ``` server_document_root /your/document/root ``` 在 "/your/document/root" 中,您需要指定您想要 Boa 访问的文件的路径。例如,如果您想要 Boa 访问 "/home/user/files" 目录中的文件,则应将以下行添加到 /etc/boa/boa.conf 文件中: ``` server_document_root /home/user/files ``` 3. 启动 Boa 服务器:使用以下命令启动 Boa 服务器: ``` sudo service boa start ``` 4. 在浏览器中访问文件:您现在可以在浏览器中输入嵌入式 Linux 的 IP 地址和 Boa 服务器的端口号,以访问您指定的文件。例如,如果您将 Boa 服务器配置为访问 "/home/user/files" 目录中的文件,并且 Boa 服务器正在侦听端口号 8888,则可以在浏览器中输入以下 URL: ``` http://<嵌入式 Linux 的 IP 地址>:8888/ ``` 这将显示您在 "/home/user/files" 目录中的所有文件和文件夹。您可以单击文件名以查看文件内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值