0


【Linux WEB】Linux嵌入式WEB服务器(BOA)部署

1. 下载boa源码

进入官网下载http://www.boa.org/news.html,版本为0.94.13

2. 交叉编译boa源码

2.1 解压boa源码压缩包
  将下载好的压缩包放入到Ubuntu系统中进行解压

tar-zxvf boa-0.94.13.tar.gz 

2.2 生成并配置Makefile文件
(1)将下载好的压缩包放入到Ubuntu系统中进行解压

cd boa-0.94.13/src #进入boa源码路径
./configure #执行配置程序

(2)修改Makefile文件,配置与目标嵌入式平台适配的编译工具链
  a.找到CC=gcc,将其改成CC = arm-linux-gnueabihf-gcc,
  b.找到CPP = gcc –E,将其改成CPP= arm-linux-gnueabihf-gcc –E, 保存退出。
  PS:这里指定的arm-linux-gnueabihf-gcc与系统环境变量的编译器一致

(3)编辑src下的compat.h和boa.c文件
a. compat.h
  在compat.h的120行处
  #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 改为
  #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

b.boa.c
在225行处注释掉下面语句:

if(setuid(0)!=-1){DIE(”icky Linux kernel bug!”);}

(4)执行make编译源码
  a. 安装依赖:

sudoapt-getinstall bison 
sudoapt-getinstall flex

b. 执行make

c. 查看是否生成boa可执行文件,若存在则表示成功

d. 压缩boa可执行文件

arm-linux-gnueabihf-strip boa #减小可执行文件的大小        
strip boa

3. 修改boa.conf文件

该文件位于boa解压后的第一级文件夹

(1)修改User与Group
  User(48行)默认nobody,改为0
  Group(49行)默认nogroup,改为0

(2)#ServerName www.your.org.here (90行左右) 去掉#

4. 配置目标嵌入式平台运行BOA所需环境

(1)将编译生成的boa可执行程序(在/src目录下)拷贝到开发板的/bin目录下,并添加可执行权限
(2)在开发板/etc目录下建boa目录,将boa.conf拷贝到板子的/etc/boa目录。并添加读写权限
(3)创建错误记录日志文件所在目录/var/log/boa/error_log,
  创建访问记录日志文件所在目录/var/log/boa/access_log,
  创建HTML文档的主目录/var/www,
  创建CGI脚本所在目录/var/www/cgi-bin/,
  在/var/www中放置一个index.html文件。
PS:上述目录若不存在,均需手动创建,这些都是boa运行需要的目录。index.html就是打开网址时的网页。
(4)将虚拟机/etc目录下的mime.types文件到开发板/etc目录。

5. 运行boa

  执行./boa运行程序。

./boa

PS:如果中途出现报错,按照以下出现的情况进行解决 。
(1)执行报错1:Could not chdir to “/etc/boa”: aborting
  解决:创建/etc/boa目录
  可修改boa目标路径,关于该目录的定义在src/defines.h中。执行make clean清理,重新执行make编译boa

(2)执行报错2:Could not open boa.conf for reading.
  解决:拷贝boa-0.94.13/boa.conf文件到/etc/boa目录下。

(3)执行报错3:[14/Jan/2021:03:19:55 +0000] log.c:73 - unable to dup2 the error log: Bad file descriptor
在这里插入图片描述

解决方案a:在系统中创建log文件夹,文件夹路径和文件参考boa.conf中的设置。
解决方案b
  找到log.c中此处代码位置,将出错代码注释掉。
在这里插入图片描述

(4)执行报错4:Cannot open /var/log/boa/access_log for logging: logfile open: No such file or directory
解决:在/var/log/ 下建立boa文件夹,并创建acccess_log文件和error_log文件 或 修改boa.confg中的设置。

最后查看boa进程是否在后台运行

ps-ef|grep boa

在这里插入图片描述

6. 网页测试

PC与嵌入式z目标平台同处于一个局域网,在PC浏览器地址栏输入嵌入式平台的IP地址,即可打开网页。

标签: 服务器 linux WEB

本文转载自: https://blog.csdn.net/anmo_moan/article/details/140996375
版权归原作者 吾爱吃西红柿 所有, 如有侵权,请联系我们删除。

“【Linux WEB】Linux嵌入式WEB服务器(BOA)部署”的评论:

还没有评论