《嵌入式web服务器 — CGIC移植(二)》
1. 下载CGIC源码
直接百度Github,然后查找CGIC。
2. 配置编译
2.1 配置编译器
vi Makefile
可以看到默认的编译器是GCC。因为我是直接在虚拟机上面做测试。因此直接用GCC就可以。
如果是要放在开发板上面,需进行对应的修改。
CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib CFLAGS=-g -Wall -static 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}
2.2 编译
make
编译生成后在当前目录生成:
libcgic.a:CGIC库
capture:调试辅助程序
cgictest.cgi:测试程序
2.3 安装CGIC
make install
CGIC安装路径为
libcgic.a 安装在/usr/local/lib
cgic.h 安装在/usr/local/include
CGIC库安装后就可以使用CGIC编程了
2.4 CGIC文件移植
将capture和cgictest.cgi拷贝到开发板的/var/www/cgi-bin目录
3. 运行测试CGI程序
3.1 本地测试
localhost/cgi-bin/cgictest.cgi
注意:前提要开启boa服务
3.2 局域网测试
ifconfig
3. 问题解决
html网页可以运行,CGI程序运行报错
Boa服务器报错:cgi_header: unable to find LFLF
客户端浏览器报错:502 Bad Gateway
The CGI was not CGI/1.1 compliant.
解决方法:静态编译cgi程序
arm-linux-gcc -o hello.cgi hello.c -static
或者是把cgi-bin这个文件夹和对应要执行的cgi应用程序chmod 777