armok. 发表于 2021-8-10 10:28:58

CGI部分 webserver移植主要分为BOA移植和CGI的移植 cgic205.tar.gz

(VIP++福利贴:本资源由坛友 jingzhongyue提出申请,由阿莫网上搜集与上传,版权归原作者。)

与BOA配合使用:本文为CGI部分 webserver移植主要分为BOA移植和CGI的移植。 1、BOA移植 1.1 设置编译环境 boa 的官方网站是:www.boa.org,下载地址: https://sourceforge.net/project/showfiles.php?group_id=78,下载的版本为:boa-0.94.13 版。 #tar xvfz boa-0.94.13.tar.gz -C /opt/EmbedSky/ 1.2 配置编译条件 配置 boa: #cd /opt/EmbedSky/boa-0.94.13/src #./configure 会在 boa-0.94.13/src 目录下面生成 Makefile 文件,修改 Makefile 文件: #vi Makefile 在 31 行和 32 行,找到:CC = gcc 和 CPP = gcc -E,然后改成:CC = arm-linux-gcc 和 CPP =arm-linux-gcc -E,保存退出。 相关文件的修改: 我们要做的是对该目录下一些源代码做相应的修改。 修改compat.h(步骤4)(这里参考别人的,写的很详细) #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 将其修改成 #define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff 否则会出现错误: util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** 修改log.c(步骤5) 将以下语句注释掉: if (dup2(error_log, STDERR_FILENO) == -1) { DIE("unable to dup2 the error log"); } 否则会出现错误: log.c:73 unable to dup2 the error log:bad file deor 修改boa.c(步骤6) 注释掉下面两句话: if (passwdbuf == NULL) { DIE(”getpwuid”); } if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) { DIE(”initgroups”); } 否则会出现错误:boa.c:211 - getpwuid: No such file or directory 注释掉下面语句: if (setuid(0) != -1) { DIE(”icky Linux kernel bug!”); } 否则会出现问题:boa.c:228 - icky Linux kernel bug!: No such file or directory 生成可执行文件BOA: 首先进入src目录,并执行configure文件,生成Makefile文件 #cd /source/boa-0.94.13/src # make(步骤9) 对生成文件进程瘦身 #arm-linux-strip boa(步骤10) 2、移植 cgic 库 2.1 下载 cgic 库的具体下载站点是:http://www.boutell.com/cgic/cgic205.tar.gz,版本为:cgic205版。 下载后,解压到“/opt/EmbedSky/”目录下,会生成目录 cgic205: #tar xvfz cgic205.tar.gz -C /opt/EmbedSky/ 2.2 配置编译条件 进入 cgic205 目录,修改 Makefile 文件: #cd /opt/EmbedSky/cgic205 #vi Makefile 下面是修改后的文件内容: CFLAGS=-g -Wall CC=arm-linux-gcc //原来是CC = gcc AR=arm-linux-ar //原来是AR = ar RANLIB=arm-linux-ranlib //原来是RANLIB = ranlib LIBS=-L./ -lcgic all: libcgic.a cgictest.cgi capture install: libcgic.a cp libcgic.a /opt/EmbedSky/4.3.3/arm-no


armok. 发表于 2021-8-10 10:30:17

页: [1]
查看完整版本: CGI部分 webserver移植主要分为BOA移植和CGI的移植 cgic205.tar.gz