- 1、CGI工作原理
- 2、CGI简单测试
- 2.1、shell案例
- 2.2、c语言案例
公共网关接口(Common Gateway Interface,CGI)
是连接 服务器 和 应用 程序 之间的一个通用接口
- 这里使用BOA服务器
- 编辑配置文件,改最后一行的路径(别忘加 /)
$ sudo vim /etc/boa/boa.conf
以后就可以访问你自定义的cgi目录 (cgi-bin 是一个虚拟路径)
- 在自定义的cgi目录里操作
$ touch time $ chmod +x time $ vim time
#!/bin/sh echo "Content-Type:text/html;charset=utf-8rn" echo "time " echo "`date '+%H:%M:%S'`"
- 在浏览器测试
clion连接虚拟机的方法
为了以后方便,直接上流程
- 获取时间:get_time.c
#include#include #include "get_time.h" char* GetTime(time_t now){ struct tm *local; static char buf[15]; //记录时间xx-xx xx:xx:xx if(now <= 0){ now = time(NULL);//获得当前的时间 } local = localtime(&now); if(local == NULL){ perror("localtime error"); return NULL; } snprintf(buf, sizeof(buf),"%02d-%02d %02d:%02d:%02d", local->tm_mon,local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec); return buf; }
- 头文件:get_time.h
#ifndef GET_TIME_H #define GET_TIME_H #includeextern char *GetTime(time_t now); #endif
- 主函数
#include#include "get_time.h" int main() { printf("Content-Type:text/html;charset=utf-8rn"); printf("rn"); printf("CGI测试"); printf("%s", GetTime(0)); return 0; }
- Makefile
TARGET := ctest CROSS_COMPILE := CC = $(CROSS_COMPILE)gcc LD = $(CROSS_COMPILE)ld OBJS := main.o OBJS += get_time.o CFLAGS += -Wall -I./inc LDFLAGS += OUTPUT_DIR = /home/venom/web_prj/jobs/cgi/ all:$(TARGET) $(TARGET):$(OBJS) $(CC) $(LDFLAGS) $^ -o $@ cp $@ $(OUTPUT_DIR) %.o:%.c $(CC) $(CFLAGS) -c $^ -o $@ clean: rm -f $(TARGET) $(OBJS)
嫌麻烦直接用mian函数随便打印一个再编译就行,Makefile还有点小问题



