参考引用
1. Apache 搭建 cgi 环境
1.1 什么是 Apache
- Apache 是世界使用排名第一的 Web 服务器软件
- 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用
1.2 具体搭建流程
通浏览器 /Qt 程序访问 apache2 后的 cgi 程序
-
1、安装 apache2 服务器
powershell$ sudo apt install apache2
-
2、测试是否安装成功
- 在浏览器中输入虚拟机 ip 地址,显示下图则表示安装成功
- 在浏览器中输入虚拟机 ip 地址,显示下图则表示安装成功
-
3、配置 apache2 支持 cgi 程序
- 进入 /etc/apache2/mods-enabled 目录下,把 cgi 配置文件创建软连接到当前目录下
powershell$ cd /etc/apache2/mods-enabled $ sudo ln -s ../mods-available/cgid.conf cgid.conf $ sudo ln -s ../mods-available/cgid.load cgid.load $ sudo ln -s ../mods-available/cgi.load cgi.load
- 在 apache2.conf 文件最前面添加 ServerName 127.0.0.1
powershell$ cd /etc/apache2/ $ sudo vim apache2.conf
- 重启 apache
powershell$ sudo apachectl restart
- 进入 /usr/lib/cgi-bin/ 目录下写 cgi 程序(c/c++ 语言程序)并编译
powershell$ cd /usr/lib/cgi-bin/ $ sudo vim main.c $ sudo gcc -o main.cgi main.c
c// main.c #include <stdio.h> int main(void) { printf("Content-type:text/html;charset=utf-8\n\n"); // 防止乱码 printf("hello world\n\n"); printf("hello world\n\n"); printf("hello world\n\n"); return 0; }
- 查看放置 cgi 程序的目录(无需操作,了解即可)
powershell$ cd /etc/apache2/conf-enabled $ vim serve-cgi-bin.conf
- 4、测试
2. cgi 接收客户端的数据
访问 cgi 程序并且把 number=100 参数传递给 cgi 程序
-
浏览器 get 请求:实际是 GET,它将数据打包放置在环境变量 QUERY_STRING 中作为 URL 整体的一部分传递给服务器,cgi 通过获取环境变量得到数据
-
在 cgi 程序中查询环境变量获取数据
c// main.c #include <stdio.h> #include <stdlib.h> int main(void) { printf("Content-type:text/html;charset=utf-8\n\n"); char *str = getenv("QUERY_STRING"); //str = "number=100"; if (str == NULL) { printf("arg error\n\n"); } else { //str = "number=100"; int data = 0; sscanf(str, "number=%d", &data); // 解析出 100 存储在 data 中 printf("hello world %d^2=%d\n\n", data, data*data); } return 0; }
以下内容待更新...