boa服务器配合sqlite 嵌入式开发

387 阅读1分钟

1、下载boa源码&安装gcc bison flex

wget www.boa.org/boa-0.94.13… 下载boa

tar -zxvf boa-0.94.13.tar.gz 解压

yum install gcc bison flex 安装依赖

2、生成配置文件

cd 进boa-0.94.13的src文件夹,运行./configure

修改 src/compat.h
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
->#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

修改Makeflie文件,把编译需要的插件换成我们刚才下载的

YACC = bison -y

LEX = flex

CC = gcc

CPP = gcc -E

之后在src文件夹内make安装boa

之后在文件夹内 ./boa启动boa服务器

启动后看是否运行,如果有问题没启动起来(ps查看进程,进程内没有boa

查看error_log文件,查看问题

(ps mimes.types文件地址为www.xilinx.com/Attachment/…

安装遇到的问题就这些,其他不详细的搜索下其他教程

3、C与sqlite交互

sqlite首先要创建数据库,在sqlite创建了数据库之后打开sqlite3 时后面需要带上你sqlite数据库的文件位置才能打开你创建的数据库

      ps:sqlite3  /root/你的数据库.db

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>

static int callback(void* data, int argc, char** argv, char** azColName) {
    int i;
    fprintf(stderr, "%s: ", (const char*)data);
    for (i = 0; i < argc; i++) {
        fprintf(stdout,"%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
    }
    printf("\n");
    return 0;
}

int main(int argc, char* argv[])
{
    sqlite3* db;
    char* zErrMsg = 0;
    int rc;
    char* sql;
    const char* data = "Callback function called";

    printf("Content-Type:text/html;charset=UTF-8\n\n");

    /* Open database */
    rc = sqlite3_open("/root/你创建的数据库.db", &db);
    if (rc) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        exit(0);
    }/*else{
       fprintf(stderr, "Opened database successfully\n");
    }*/

    /* Create SQL statement */
    sql = "SELECT * FROM 你创建的数据表";

    /* Execute SQL statement */
    rc = sqlite3_exec(db, sql, callback, (void*)data, &zErrMsg);
    if (rc != SQLITE_OK) {
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
        sqlite3_free(zErrMsg);
    } else {
       fprintf("End\n");
    }
    sqlite3_close(db);
    return 0;
}

gcc -o sqlite.cgi conSqlite.c -l sqlite3  编译c文件到cgi

就可以访问生成的sqlite.cgi文件了

如果文件中有中文,记得设置charset为utf 8