最近被一个问题所困扰,运行那个helloworld.cgi程序总是出现以下这个错误:
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
网上找了一下,可能是这几个原因:
(1)将.cgi文件拷贝至目标板上后,必须改变其权限
chmod 755 *
(2)测试程序中“//“的问题。参考<Web服务器--Boa实验笔记>
http://www.pc51.net/system/unix/linux/2007-02-07/6888.html
(3)修改 BOA 源码 cgi.c
添加环境变量:
my_add_cgi_env(req, "LD_LIBRARY_PATH", "/lib");(函数complete_env中)
再重新交叉编译即可
(4) 同时请修改下 boa对CGI支持的缺陷。
(5)出现这个问题的原因是关于“库”方面的原因。如果你编译CGI文件的时候,用静态编译,则编译的时候,会自动地加入库。
arm-linux-gcc -static test.c -o test.cgi
(http://topic.youkuaiyun.com/t/20061120/13/5171006.html#有相关讨论)
(6) 说它不支持http 1.1 协议,那你在ie中也使用http 1.0协议访问它试试看。方法是点“工具”->"internet选项“->"高级",把“使用http 1.1协议"前面的勾去掉。
(7)如果是用flashfxp工具传送文件到目标板上,请选用二进制模式传送。我自己就出错在这里,在此感谢网友newzy帮忙解决这个问题。
移植boa后运行CGI程序可能出现的原因及解决方法
最新推荐文章于 2024-08-13 12:09:00 发布