【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. 安装依赖:

sudo apt-get install bison 
sudo apt-get install 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地址,即可打开网页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值