今天下午在开发板上搭建了,一个BOA服务器。进行了相关的配置。
访问网页没有问题。
但是在和CGI交互上面出现了问题。
填写表单,提交后出现:
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
错误,以为是自己的环境搭建的有问题。
后来在虚拟机上也配置了一个BOA服务器。
同样的网页,同样的CGI代码,虚拟机上没有问题。 心里就比较郁闷了。
在网上疯狂的找答案:
大概有这两种解决方式:
1.修改boa代码cgi.c,在 complete_env 函数中添加环境变量
my_add_cgi_env(req, "LD_LIBRARY_PATH", "/lib"),然后重新make即可;
2.编译时加入一个参数,具体如下:
gcc -static test.c -o test.cgi
可是我的还是不行.
无意中看到一篇文章上面说给CGI文件加上777权限。OK终于好了。。可以成功了。
这有两篇比较好的文章:
http://www.cnblogs.com/hnrainll/archive/2011/06/01/2067295.html
http://www.cnblogs.com/hnrainll/archive/2011/06/01/2067266.html
总结如下:
1.CGI文件,如果是下载到开发板中去的,要用arm-linux-gcc编译。
2.网页不能访问,看看是不是自己开了代理。如果开了代理上网就关掉。
3.出现502错误时,可以尝试给CGI文件加上读写权限。
wenhao@20110601