liuxiaoyun1210的个人空间 https://passport2.21ic.com/?695946 [收藏] [复制] [RSS]

日志

嵌入式Linux系统中移植Boa 服务器

已有 240 次阅读2016-2-22 11:45 |系统分类:兴趣爱好

1、解压

将下载的源码压缩包放到某目录下,然后执行:

tar –xvzf  boa-0.94.13.tar.tar

2、进入/boa-0.94.13/src目录,可以看到如下文件

修改compat.h文件

#ifdef HAVE_TM_GMTOFF

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff

#else

#define TIMEZONE_OFFSET(foo) timezone

#endif

改为:

#ifdef HAVE_TM_GMTOFF

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

#else

#define TIMEZONE_OFFSET(foo) timezone

#endif

3.执行:./configure

之后,可以查看,生成了些新文件:

再执行make

    make编译

4.拷贝/boa-0.94.13/boa.conf 到/etc/boa目录下:

mkdir /etc/boa

cp boa.conf /etc/boa

5.进入/etc/boa目录,打开boa.conf文件,并做如下修改:

(1)将User nobody和Group nogroup 分别改为:User 0和Group 0,如下所示:

(2)修改路径

改为:

保存后退出


6.根据boa.conf创建必要的目录

(1)存放网页目录:mkdir /var/www

(2)存放CGI文件目录:mkdir /var/www/cgi-bin

(3)存放日志目录:mkdir /var/log/boa/  

7.创建用于测试的index.html文件 

 

保存为index.html,并存至/var/www目录下

8.启动服务器

执行./boa


输入:./boa    出现:

[31/Jan/2013:10:42:55 +0000] log.c:73 - unable to dup2 the error log: Bad file descriptor 这样的错误。

我们要改动log.c文件

注释掉:

if(dup2(error_log, STDERR_FILENO) == -1) 
{
      DIE("unable to dup2 the error log");
}
然后:


make clean    

make

        然后再在src目录下 执行: ./boa 若出现:Cannot open /var/log/boa/access_log for logging: logfile open: No such file or directory,或者是其他的Cannot open /var/log/boa/error_log for logging: logfile open: No such file or directory

哪个出现,你就在boa.conf里把它给注释掉(不要忘了/etc/boa/目录下的boa.conf),即 改成:


#AccessLog /var/log/boa/access_log

还会出现错误:


boa.c:226 - icky Linux kernel bug ! :Success 错误 ,注释重新编译即可


然后再./boa  此时boa服务器就已经启动,打开ubuntu浏览器,输入ubuntu的ip地址,就可以看到你放在/var/www里的网页了。

BOA启动后会显示出:

可以看到服务器启动的进程ID和端口号。

通过ps -e查看

可见,进程PID为3449,表明已经启动成功。

9.成功启动后,当然要看看是否真正可以通过浏览器看到服务器中的网页。打开网页,输入本机的ip

 以下是CGI测试程序和测试网页代码




在网页上显示如下


    点击确定跳转到:


不同的平台使用相应的编译工具,其中包括修改MakeFile文件

将生成的boa文件移植到嵌入式板中的/sbin目录下并更改脚本文件 /etc/init.d/rcS, 新增一行: /sbin/boa ,确保boa服务器随系统上电自启动。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)