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

相关推荐
不爱缺氧i7 分钟前
完全卸载MariaDB
数据库·mariadb
纤纡.13 分钟前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
久邦科技18 分钟前
奈飞工厂中文官网入口,影视在线观看|打不开|电脑版下载
学习
jiunian_cn27 分钟前
【Redis】渐进式遍历
数据库·redis·缓存
好好学习天天向上~~34 分钟前
6_Linux学习总结_自动化构建
linux·学习·自动化
橙露42 分钟前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
冰暮流星43 分钟前
sql语言之分组语句group by
java·数据库·sql
符哥200844 分钟前
Ubuntu 常用指令集大全(附实操实例)
数据库·ubuntu·postgresql
C++ 老炮儿的技术栈1 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
怣501 小时前
MySQL子查询零基础入门教程:从小白到上手(零基础入门版)
数据库·mysql