分类: 嵌入式
2021-08-17 09:12:55
原文地址:LINUX BOA CGI移植与实例实验(上) 作者:ispsubb
BOA CGI移植与实例实验
在文件系统中经常移植BOA,但没有做过实际的应用。闲暇时自己试了试。留下个笔记。关于移植网络上大把的资源,不想赘述。
最新发行版本: 0.94.14
似乎现在已经没有进行维护了,这个版本已经好久了。2005.2.23 release后就没有更新过了。老外做的东西就是牛逼啊。
编译依赖这两个库,一般都有。我用的ubuntu 。可以使用以下命令安装
sudo apt-get install bison flex
源码中需要修改的地方,由于编译器,kernel等的提升,导致下载下来,就有些地方要修改。
点击(此处)折叠或打开
编译完成,安装到对应的目录。这时候可能还需要根据自己的实际情况配置一下boa.conf 。
安装完后,在根目录 etc/boa.conf 就是boa的配置文件。以实验中源码配置文件为准。
点击(此处)折叠或打开
使用过程中常见错误,网上有很多总结这个,以下这个是转
http://blog.sina.com.cn/s/blog_53013a8c0100do7t.html
1.必须要在板子的/etc下建一个boa目录(错误代码忘了)
2.”can't open boa.conf for reading“
解决:不仅要在你自己放置boa的目录下放入boa.conf配置文件,而且要在板子的/etc/boa下
也要放入boa.conf文件,这样系统在运行boa的时候才可以读取到boa.conf文件。
3.“unable to dup2 the error log bad file descriptor”
解决:在boa源码里,即src文件夹下把log.c中的第73行的if语句注释掉。
4."unable to dup2 the error log:Bad file descriptor"
解决:在boa.conf里,把“#AccessLog /var/log/boa/access_log”注释掉(即去掉#号)。
5.“[01/Jan/2031:00:12:25 +0000] boa.c:226 - icky Linux kernel bug!: No such file or directory”
解决:在boa源码里,即src文件夹下把boa.c中的第226行的if语句注释掉。
6."gethostbyname:: Resource temporarily unavailable"
解决:把“#ServerName ”的“#”号去掉。
7."./boa: 1: syntax error: "(" unexpected"
解决:没有修改Makefile,是用gcc编译的,应该改成是arm-linux-gcc编译。
8.如果页面上是:“502 Bad Gateway The CGI was not CGI/1.1 compliant.“
解决:给你要执行的cgi可执行程序赋个权限。chmod 777 filename
9.在form action="cgi-bin/test2.cgi" method="get"中,cgi可执行程序的路径就直接写“cgi-bin/test2.cgi”就可以了,