SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解

参考引用

1. Apache 搭建 cgi 环境

1.1 什么是 Apache

  • Apache 是世界使用排名第一的 Web 服务器软件
    • 它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用

1.2 具体搭建流程

通浏览器 /Qt 程序访问 apache2 后的 cgi 程序

  • 1、安装 apache2 服务器

    powershell 复制代码
    $ sudo apt install apache2
  • 2、测试是否安装成功

    • 在浏览器中输入虚拟机 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;
    }

以下内容待更新...


3. Qt 访问 cgi 程序

4. Qt 获取 linux 目录

5. Qt 通过 cgi 登录注册

6. Qt 通过 cgi 访问数据库和 linux 命令

相关推荐
Willliam_william4 分钟前
SystemC学习(1)— SystemC安装与HelloWorld
学习
sealaugh329 分钟前
aws(学习笔记第一课) AWS CLI,创建ec2 server以及drawio进行aws画图
笔记·学习·aws
布丁不叮早起枣祈9 分钟前
10.5学习
学习
长天一色12 分钟前
C语言日志类库 zlog 使用指南(第五章 配置文件)
c语言·开发语言
Rookie也要加油17 分钟前
01_SQLite
数据库·sqlite
向上的车轮18 分钟前
Django学习笔记五:templates使用详解
笔记·学习·django
whltaoin20 分钟前
【408计算机考研课程】-C语言认知
c语言·考研
liuxin3344556622 分钟前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
一般清意味……24 分钟前
快速上手C语言【上】(非常详细!!!)
c语言·开发语言
卑微求AC25 分钟前
(C语言贪吃蛇)16.贪吃蛇食物位置随机(完结撒花)
linux·c语言·开发语言·嵌入式·c语言贪吃蛇