boa+cgi上传文件

boa+cgi上传文件

从网上下的开源代码boa+cgi,移植到arm里做个在线升级,曾以为最难的flash擦写先搞定了,却卡在上传文件这块。问题是超过400K的文件不能上传,连.cgi文件也没有执行,或者执行却失败了(至少没有执行到.cgi的main函数第一句)。既然小文件能上传,那么可以判定不是代码的问题,何况代码是开源下载基本没做实质性的更改;内存也够了,还有20多兆空间,分区虽然还是稀里糊涂,但上传的过程不涉及flash分区。那么唯一的可能就是哪里没有配置好,
百度谷歌千百回,http://linsichengbest.blog.163.com/blog/static/1429445202012352547536/
这个比较具有代表性,就是boa默认上传文件大小为1M,但这里已经改为16M。
在/boa/defines.h里配置上传文件大小限制
#define SINGLE_POST_LIMIT_DEFAULT               1024 * 1024 *16/* 1 MB */

因为通过nfs手动复制升级包到/var/(/var/挂载内存下)下面是可以的,既然终点没有问题,那么肯定在“过程”中出错了,就是说这个升级包上传的过程中经过哪里,又回去看代码,发现在/boa/config.c中,确定上传过程路径:tempdir = "/tmp";升级包要经过"/tmp",检查文件系统发现"/tmp"挂在第八分区下,第八分区可用空间只有400K了,难怪上传文件的最大限制为400K。重新挂载/tmp/到内存中,这下子文件可达1M多,再试下2M、3M的文件都能上传,但超过4M又不行了,跟之前超过400K的情况一样,真是步步惊心。


这部分相关参考:
/etc/fstab文件详解
http://hi.baidu.com/jingzhongchen/blog/item/8e6f552dcead7ce98b139952.html

RamFS/TmpFS文件系统 
http://vicyliu1984.blog.163.com/blog/static/315412322010104113522202/

再次全面检查,实在检查不出来个所以然,然后就漫无目的地在文件系统里挨个浏览,突然发现boa是通过mount方式运行的因为之前为了方便调试,将app通过软链接到本地计算机中,boa是最后一个,尽然忘了改回。赶紧删除软链接,拷贝APP,重新烧写文件系统,重启。。。升级成功,现在最大能升级9M的文件,够用了,够用就好。

 

问题虽然解决了,但是还有些细节没搞清楚:
1、这里/var/和/tmp/都挂载内存中,但是两者大小都是内存可用空间,奇哉怪也;
2、当boa通过nfs软链接到pc端实体APP时,为何上传文件会有4M的大小限制,这个大小在哪里可以配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值