CGI+SQLite环境配置
一、CGI配置
1. 下载源码
网站:https://github.com/boutell/cgic
unzip -n cgi-master.zip -d [指定目录]
2. 编译运行
来到解压目录下
- 修改Makefile文件
CC=arm-linux-gnueabi-gcc
AR=arm-linux-gnueabi-ar
RANLIB=arm-linux-gnueabi-ranlib
CFLAGS=-g -Wall -static
cgictest.cgi: cgictest.o libcgic.a
$(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}
capture: capture.o libcgic.a
$(CC) $(CFLAGS) capture.o -o capture ${LIBS}
- 编译并安装
make & make install
- 测试运行
将capture和cgictest.cgi文件拷贝到相应的/cgi-bin目录
测试如下:
3. 编译程序
- HTML网页制作+CGI程序编写
- 将CGIC库的cgic.c、cgic.h文件拷贝到编译目录,进行如下操作
arm-linux-gnueabi-gcc -o [自定义].cgi [编写的CGI程序].c cgic.c -static
arm-linux-gnueabi-strip [自定义].cgi
- 将编译后的cgi文件拷贝到相应的/cgi-bin目录
- 将HTML文件拷贝到相应的/www目录
二、SQLite配置
1. 下载源码
官方网站:https://www.sqlite.org/download.html
tar -xvzf sqlite-autoconf-3350300.tar.gz -C [指定目录]
2. 配置与编译安装
建立目录:
mkdir -p /usr/sqlite3-arm
进入解压目录中,执行
./configure --host=arm-linux --prefix=/usr/sqlite3-arm
host指定交叉编译工具,prefix指定安装目录
编译并安装
make & make install
如果出现错误,再执行一次操作
将sqlite3-arm目录下的bin目录下的sqlite3程序拷贝到/usr/bin目录
将sqlite3-arm目录下的lib目录下的所有文件拷贝到/usr/lib目录
测试
sqlite3 -version
安装成功会出现版本信息
三、整体程序编译
需要编写HTML,CGI程序,并且在CGI程序使用到SQLite语句
编译过程可选择动态编译和静态编译,但使用动态编译之后BOA服务器会出现502 Bad Gateway,网页无法正常显示
编译程序:
arm-linux-gnueabi-gcc -o [自定义].cgi [编写的C程序].c sqlite3.c cgic.c -static -lsqlite3 -lpthread -ldl
此种编译需要将sqlite3.c和cgic.c文件拷贝至编译所在目录
arm-linux-gnueabi-gcc -o [自定义].cgi [编写的C程序].c -I /usr/include -L /usr/lib -static -lsqlite3 -lpthread -ldl
-I制定优先搜索头文件路径,-L制定编译的时候,优先搜索库的路径
其中-static
实现静态编译,若在编译过程出现头文件或库文件缺失,则需要完成相应文件的移植。
本文参考了以下文章,配置过程中若有其他错误,也可作参考: