天嵌 ARM开发社区

 找回密码
 注册
查看: 4656|回复: 14

boa+cgic的移植和开发问题

[复制链接]
zwg 发表于 2013-11-13 22:47:30 | 显示全部楼层 |阅读模式
环境介绍:tq2440 + linux2.6.30.4 + root_qt_4.5_2.6.30.4(天嵌厂商镜像文件)
问题描述:我希望搭建boa+cgic的环境做些web开发。
步骤描述:root_qt_4.5_2.6.30.4里的web文件中没有搭建cgic(按天嵌教程来说应该有的)。于是按照教程天嵌科技出品-Linux移植之Step By Step_V4.5_20100605.pdf来做。用arm-linux-gcc编译了cgic,得到了capture、cgictest.cgi等文件。利用cuteFTP工具在开发板web目录下新建cgi-bin目录。并将captur、cgictest.cgi下载到cgi-bin目录下。
修改boa.conf,写入ScriptAlias /cgi-bin/ /web/cgi-bin/(原来是注释的)。
错误结果:在pc上输入http://192.168.1.6/cgi-bin/cgictest.cgi。浏览器显示502 Bad Gateway 。The CGI was not CGI/1.1 compliant。串口输出:cgi_header: unable to find LFLF。
补充:事例网页完全正常。我将事例中leds.cgi复制到cgi-bin中,访问http://192.168.1.6/cgi-bin/leds.cgi。网页空白。串口输出type is 0, period is 1.000000 。
      有个疑问。介绍说capture起调试作用。是不是应该要把cgic的相应库文件也下载到开发板某个位置。但天嵌的教程中没有相关说明。我找的其他资料上则说法不一。
 楼主| zwg 发表于 2013-11-14 12:05:55 | 显示全部楼层
还没有回答啊!在线等,期待中。我自己做了几天了,还是不行。哪位前辈帮帮忙啊!
亚瑟王 发表于 2013-11-14 15:38:58 | 显示全部楼层
cgic库拷贝到文件系统的lib目录下。
 楼主| zwg 发表于 2013-11-14 19:35:34 | 显示全部楼层
亚瑟王 发表于 2013-11-14 15:38
cgic库拷贝到文件系统的lib目录下。

我将libcgic.a下载到lib目录下,还是出现与上相同错误。
 楼主| zwg 发表于 2013-11-14 19:46:09 | 显示全部楼层
亚瑟王 发表于 2013-11-14 15:38
cgic库拷贝到文件系统的lib目录下。

我将libcgic.a下载到lib目录下,还是出现与上相同错误。
亚瑟王 发表于 2013-11-15 10:06:49 | 显示全部楼层
zwg 发表于 2013-11-14 19:46
我将libcgic.a下载到lib目录下,还是出现与上相同错误。

libcgic.so开头的库呢?要这个动态库才行。
 楼主| zwg 发表于 2013-11-15 19:37:41 | 显示全部楼层
亚瑟王 发表于 2013-11-15 10:06
libcgic.so开头的库呢?要这个动态库才行。

make后没有libcgic.so文件。
makefile如下:
CFLAGS=-g -Wall
CC=arm-linux-gcc
AR=arm-linux-ar
RANLIB=arm-linux-ranlib
LIBS=-L./ -lcgic

all: libcgic.a cgictest.cgi capture

install: libcgic.a
        cp libcgic.a /usr/local/lib
        cp cgic.h /usr/local/include
        @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include.

libcgic.a: cgic.o cgic.h
        rm -f libcgic.a
        $(AR) rc libcgic.a cgic.o
        $(RANLIB) libcgic.a

#mingw32 and cygwin users: replace .cgi with .exe

cgictest.cgi: cgictest.o libcgic.a
        $(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}

capture: capture.o libcgic.a
        $(CC) $(CFLAGS) capture.o -o capture ${LIBS}

clean:
        rm -f *.o *.a cgictest.cgi capture
 楼主| zwg 发表于 2013-11-15 19:56:40 | 显示全部楼层
zwg 发表于 2013-11-15 19:37
make后没有libcgic.so文件。
makefile如下:
CFLAGS=-g -Wall

补充下,如果仅仅是cgic的移植问题。我把事例中的leds.cgic拷贝的bin-cgi目录下,也不能正常访问。leds.cgi是用脚本语言写的,没用cgic。
亚瑟王 发表于 2013-11-18 11:11:29 | 显示全部楼层
zwg 发表于 2013-11-15 19:56
补充下,如果仅仅是cgic的移植问题。我把事例中的leds.cgic拷贝的bin-cgi目录下,也不能正常访问。leds.c ...

你直接用我们的文件系统呢?
需要注意可执行文件的权限。
 楼主| zwg 发表于 2013-11-18 19:39:43 | 显示全部楼层
亚瑟王 发表于 2013-11-18 11:11
你直接用我们的文件系统呢?
需要注意可执行文件的权限。

我用的是root_qt_4.5_2.6.30.4(天嵌厂商镜像文件)。改过权限了,还不行。
亚瑟王 发表于 2013-11-19 10:45:09 | 显示全部楼层
zwg 发表于 2013-11-18 19:39
我用的是root_qt_4.5_2.6.30.4(天嵌厂商镜像文件)。改过权限了,还不行。

我记得本论坛有类似的问题,也给出来了解决方法的,建议搜索一下本论坛。
 楼主| zwg 发表于 2013-11-19 21:21:47 | 显示全部楼层
亚瑟王 发表于 2013-11-19 10:45
我记得本论坛有类似的问题,也给出来了解决方法的,建议搜索一下本论坛。

我搜了,确实有人跟我遇到相同的问题,不过帖子上也没有解决方案
亚瑟王 发表于 2013-11-20 10:31:07 | 显示全部楼层
zwg 发表于 2013-11-19 21:21
我搜了,确实有人跟我遇到相同的问题,不过帖子上也没有解决方案

1、有的人是因为脚本中的语句结构有问题:
比如正常是printf("xxxxx\n\n").
错误的写成了printf(“xxxx”)。
2、有人是因为权限不够,解决办法:chmod 777 xxx.cgi
 楼主| zwg 发表于 2013-11-20 15:08:15 | 显示全部楼层
亚瑟王 发表于 2013-11-20 10:31
1、有的人是因为脚本中的语句结构有问题:
比如正常是printf("xxxxx\n\n").
错误的写成了printf(“xxx ...

权限问题我改过了,没用,还是有错。
关于“有的人是因为脚本中的语句结构有问题:“,我用的是cgic205编译生成cgictset.cgi文件。他们的这个不会写作吧,况且,我把事例中原本可以用的leds.cgi考到cgi-bin中,也不能正常返回。
亚瑟王 发表于 2013-11-20 15:27:38 | 显示全部楼层
zwg 发表于 2013-11-20 15:08
权限问题我改过了,没用,还是有错。
关于“有的人是因为脚本中的语句结构有问题:“,我用的是cgic205 ...

看看cgic的帮助文件,多试试吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-9-28 13:19 , Processed in 1.038020 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表