CGI 问题:502 bad gateway以及生成文件过大的处理

嵌入式相关的工作,可以说是惜内存如金,我们有时候编译的可执行程序会很大,今天我也遇到这方面的问题以及解决办法,分享给大家。

现在做的项目是在arm板上用Boa搭建web服务器,然后cgi来调用一些功能。

以下是一个简单的cgi例子:


#include <stdio.h> 
int  main() 


     printf("Content-type: text/html\n\n"); 
    printf("<html>\n"); 
    printf("<head>\n"); 
    printf("<title>my page</title>\n"); 
    printf("</head>\n"); 
    printf("</HTML>\n"); 
   return 0; 


用 arm-linux-gcc -o hello.cgi hello.c 编译,启动Boa后
在pc机上的浏览器里面不能正确浏览,提示错误:
502 bad  gateway 
The CGI was not CGI/1.1 compliant.

查看 log 
unable to find LFLF

在网上找了下,解决方法:arm-linux-gcc -static -o hello.cgi hello.c ,我试过,是可以的。

但是,由于是静态,就一个hello.cgi 就有1.4M,我的硬件资源可耗不起哦。

后来经过从网上前辈的经验,发现以下是减少编译后文件大小的方法:

1、静态编译完了  再 arm-linux-strip 一下可以缩小!

2、更改boa 源代码里的src/下的 cgi.c中加入 my_add_cgi_env(req, "LD_LIBRARY_PATH", "/lib");加到  complete_env 函数中就可以了,注意:/lib自己定义自己动态库所在路径

最终总结:

两个结合来使用时最好的,调用动态库成功后,再strip一下,达到最佳效果。


以上内容是我从网上搜的一些内容,以及自己的理解和一些感悟,希望对大家有帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值