zoukankan      html  css  js  c++  java
  • 《嵌入式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

  • 相关阅读:
    spring @component的作用详细介绍
    @Scheduled(cron = "0/5 * * * * *")将时间改为配置
    java项目里classpath具体指哪儿个路径
    返回前多少行数据
    Gson的基本使用
    JSON.toJSONString中序列化空字符串遇到的坑
    指定JSON.toJSONString中实体类属性的输出顺序
    Javascript实现的图片隐写术
    IntelliJ IDEA 快捷键终极大全
    ECMAScript 6 入门
  • 原文地址:https://www.cnblogs.com/zhuangquan/p/13041969.html
Copyright © 2011-2022 走看看