嵌入式web服务器boa移植到mini2440开发板详细过程.docx
信盈达嵌入式WEB服务器BOA移植到MINI2440开发板详细过程陈工1/7嵌入式WEB服务器BOA移植到MINI2440开发板详细过程1、概述为了和开发板上用的HTTPD服务,我选用的服务器是BOA,BOA已经没有更新了,但是现在的应用仍然很大,当然更先进的APPWEB当然是更好的选择,不过学习应先从简单的入手。本教程使用环境是REDHATENTERPRISELINUX6,交叉编译工具是ARMLINUXGCC432,开发板是MINI2440,开发板内核是26322、到HTTP//WWWBOAORG/下载源码,BOA最终版是094133、解压文件1)解压ROOTLOCALHOSTOPEN_SOURCELSBOA09413TARGZROOTLOCALHOSTOPEN_SOURCETARXVFBOA09413TARGZC/ROOTLOCALHOSTOPEN_SOURCELSBOA09413BOA09413TARGZ2)为了和X86版本区别把解压出来的文件夹BOA09413重新命名为BOA09413_ARMROOTLOCALHOSTOPEN_SOURCEMVBOA09413BOA09413_ARM4编译前修改工作(主要是因为BOA太久没有更新,目前相对说比较老,要修改下才能通过编译)1)修改VICOMPATH文件ROOTLOCALHOSTOPEN_SOURCELSBOA09413_ARMBOA09413TARGZROOTLOCALHOSTOPEN_SOURCECDBOA09413_ARM/SRC/ROOTLOCALHOSTSRCVICOMPATH找到DEFINETIMEZONE_OFFSETFOOFOOTM_GMTOFF修改成DEFINETIMEZONE_OFFSETFOOFOOTM_GMTOFF即将120行和126行的FOOTM_GMTOFF改为FOOTM_GMTOFF否则会出现错误UTILC1001ERRORPASTING“T“AND““DOESNOTGIVEAVALIDPREPROCESSINGTOKENMAKEUTILO错误12)修改SRC/LOGC注释掉IFDUP2ERROR_LOG,STDERR_FILENO1{DIE“UNABLETODUP2THEERRORLOG“}信盈达嵌入式WEB服务器BOA移植到MINI2440开发板详细过程陈工2/7为/IFDUP2ERROR_LOG,STDERR_FILENO1{DIE“UNABLETODUP2THEERRORLOG“}/否则会出现错误LOGC73UNABLETODUP2THEERRORLOGBADFILEDESCRIPTOR3)修改SRC/BOAC注释掉下面两句话IFPASSWDBUFNULL{DIE”GETPWUID”}IFINITGROUPSPASSWDBUFPW_NAME,PASSWDBUFPW_GID1{DIE”INITGROUPS”}为IF0IFPASSWDBUFNULL{DIE”GETPWUID”}IFINITGROUPSPASSWDBUFPW_NAME,PASSWDBUFPW_GID1{DIE”INITGROUPS”}ENDIF否则会出现错误BOAC211GETPWUIDNOSUCHFILEORDIRECTORY。注释掉下面语句IFSETUID01{DIE”ICKYLINUXKERNELBUG”}信盈达嵌入式WEB服务器BOA移植到MINI2440开发板详细过程陈工3/7为IF0IFSETUID01{DIE”ICKYLINUXKERNELBUG”}ENDIF否则会出现问题BOAC228ICKYLINUXKERNELBUGNOSUCHFILEORDIRECTORY5、配置BOA服务器,编辑BOA09413目录下的BOACONF文件,按如下配置修改USERNOBODY48行为USER0用户修改GROUPNOGROUP49行为GROUP0用户组修改GROUP的参数为0是因为系统中没有NOGROUP组,如果你没有NOBODY用户,那么USERNOBODY也要做相应修改修改成自己的用户名亦可。其它采用默认设置。如有必要,可以参看中的参数说明。SERVERNAMECHENZHIFA(94行)服务器名字,这里默认是注释掉的,一定要去掉注释DOCUMENTROOT/VAR/WWW(111行)为HTML文件目录SCRIPTALIAS/CGIBIN//VAR/WWW/CGIBIN/(193行)CGI程序目录注意SCRIPTALIAS项SCRIPTALIAS/CGIBIN//VAR/WWW/CGIBIN是错的,要改为SCRIPTALIAS/CGIBIN//VAR/WWW/CGIBIN/就相差一个/,否则测试CGI程序时,在浏览器地址栏中输入192168199/CGIBIN/CGIHELLOCGI会出现以下错误THEREQUESTEDURL/CGIBIN/CGIHELLCGIWASNOTFOUNDONTHISSERVER6生成MAKEFILE文件,并修改其中的交叉编译器ROOTLOCALHOSTBOA09413_ARMCDSRC/ROOTLOCALHOSTSRC/CONFIGUREROOTLOCALHOSTSRCVIMAKEFILE修改编译器第31行,32行31CCGCC32CPPGCC–E为,保存并退出。7编译信盈达嵌入式WEB服务器BOA移植到MINI2440开发板详细过程陈工4/7ROOTLOCALHOSTSRCMAKE8复制编译得到的可执行文件到根文件系统ROOTLOCALHOSTSRCCPBOA/OPT/S3C2440/ROOT_NFS/BIN/9修改BOA服务器程序权限(给最大权限)ROOTLOCALHOSTBOA09413_ARMCHMOD777/OPT/S3C2440/ROOT_NFS/VAR/WWW/CGIBIN/CGIHELLOCGI10在根文件系统中创建服务器目录(和BOA中的相同)ROOTLOCALHOSTSRCMKDIR/OPT/S3C2440/ROOT_NFS/VARROOTLOCALHOSTSRCMKDIR/OPT/S3C2440/ROOT_NFS/VAR/WWWROOTLOCALHOSTSRCMKDIR/OPT/S3C2440/ROOT_NFS/VAR/WWW/CGIBIN11复制配置文件到根文件系统中/ETC/BOA/目录中,注意BOA目录要自动先创建ROOTLOCALHOSTSRCCD/ROOTLOCALHOSTBOA09413_ARMMKDIR/OPT/S3C2440/ROOT_NFS/ETC/BOAROOTLOCALHOSTBOA09413_ARMCPBOACONF/OPT/S3C2440/ROOT_NFS/ETC/BOA/12复制MIMETYPES文件到根文件系统的中ETC文件夹中。(MIMETYPES为X86主机/ETC/目录下的文件,里面内容是LINUX下文件类型对应的处理程序)ROOTLOCALHOSTBOA09413_ARMCP/ETC/MIMETYPES/OPT/S3C2440/ROOT_NFS/ETC/13创建BOA日志存放目录和日志文件,需要手动创建(路径要和BOA中的配置相同)ROOTL