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 命令

相关推荐
悟道书生8 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
Be for thing8 小时前
PyTorch自动求导Autograd详解|requires_grad、backward、grad、梯度清零
pytorch·学习·1024程序员节
ss2738 小时前
30 PostgreSQL ACID特性详解
数据库·postgresql
syagain_zsx9 小时前
ODB 与 MySQL:C++ 里的 ORM 实践(类即表、事务铁律与查询封装)
开发语言·数据库·c++·mysql·工具库·1024程序员节
小鱼仙官9 小时前
使用Qt封装C/C++ 动态库 用于第三方调用
c语言·c++·qt
小嘉丶学长9 小时前
Day08 · 字符串(二)
服务器·开发语言·python·学习·1024程序员节
时间售卖铺9 小时前
MySQL 备份
运维·数据库·mysql·云原生
靠谱的工程师朋友9 小时前
电子会计档案管理软件科普 核心能力与选型要点解析
网络·数据库·人工智能·电子会计档案
北冥you鱼9 小时前
Go 语言 Ticker 定时任务全解析:原理、陷阱与最佳实践
开发语言·数据库·golang
poiu12346579 小时前
使用AI辅助学习与资料整理的个人体会
人工智能·学习