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

相关推荐
xiao-xiang5 小时前
redis-保姆级配置详解
数据库·redis
HalvmånEver5 小时前
在 C++ :x86(32 位)和 x64(64 位)的不同
开发语言·c++·学习
白鹭6 小时前
MySQL(多表查询练习)
数据库·mysql
艾伦~耶格尔8 小时前
【数据结构进阶】
java·开发语言·数据结构·学习·面试
Janspran9 小时前
嵌入式linux学习 -- 进程和线程
linux·运维·学习
谱写秋天9 小时前
FreeRTOS中断服务程序(ISR)详细讲解
c语言·freertos·isr
xiao-xiang10 小时前
redis-sentinel基础概念及部署
数据库·redis·sentinel
AI 嗯啦10 小时前
SQL详细语法教程(三)mysql的函数知识
android·开发语言·数据库·python·sql·mysql
rannn_11111 小时前
【Javaweb学习|黑马笔记|Day1】初识,入门网页,HTML-CSS|常见的标签和样式|标题排版和样式、正文排版和样式
css·后端·学习·html·javaweb
时序数据说11 小时前
国内时序数据库概览
大数据·数据库·物联网·时序数据库·iotdb