设为首页 加入收藏

TOP

Ttiny6410移植boa服务器
2014-11-24 11:47:39 来源: 作者: 【 】 浏览:1
Tags:Ttiny6410 移植 boa 服务器

一、boa下载和安装:
1、修改编译安装文件:


1)在www.boa.org下载boa-0.94.13.tar.gz 并解压


2)在src目录下运行./configure生成Makefile。


3)生成Makefile文件,修改


CC = arm-linux-gcc


CPP = arm-linux-gcc–E


2、修改boa.c源文件


将boa.c文件中以下几行判断注释掉。


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


改为


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


3、修改文件compat.h


#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff


4、执行#make 命令


#make


#arm-linux-strip boa


二、配置boa.conf


配置只保留一下的文字(可以自己写一个boa.conf文件,同时保存相应的):


Port 80 //服务访问端口


User 0 //
Group 0 //


ErrorLog /var/log/boa/error_log //错误日志地址
AccessLog /var/log/boa/access_log //访问日志文件


DocumentRoot /var/www //HTML文档的主目录


UserDir public_html //


DirectoryIndex index.html //默认访问文件


DirectoryMaker /usr/lib/boa/boa_indexer


KeepAliveMax 1000 //一个连接所允许的HTTP持续作用请求最大数目


KeepAliveTimeout 10 //HTTP持续作用中服务器在两次请求之间等待的时间数,以秒为单位


MimeTypes /etc/mime.types //指明mime.types文件位置


DefaultType text/plain //文件扩展名没有或未知的话,使用的缺省MIME类型


CGIPath /bin:/usr/bin:/usr/local/bin //提供CGI程序的PATH环境变量值


Alias /doc /usr/doc //为路径加上别名


ScriptAlias /cgi-bin/ /var/www/cgi-bin/ //输入站点和CGI脚本位置



常见错误:


1>. 错误1: gethostbyname:: No such file or directory


解决办法: 修改boa.conf 去掉 ServerName www.your.org.here 前的注释符号(#)


2>. 错误1: util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o]


解决办法: 修改 src/compat.h


   找到


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


   修改成


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


3>. 错误2: boa.c:211 - getpwuid: No such file or directory


解决办法: 修改src/boa.c


   注释掉下面这段程序:


  if (passwdbuf == NULL) {


   DIE(”getpwuid”);


   }


   if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {


  DIE(”initgroups”);


  }


  即修改为:


  #if 0


  if (passwdbuf == NULL) {


   DIE(”getpwuid”);


   }


   if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {


   DIE(”initgroups”);


   }


  #endif


4>. 错误3: boa.c:228 - icky Linux kernel No such file or directory


解决办法: 修改src/boa.c


  注释掉下面语句:


  if (setuid(0) != -1) {


  DIE(”icky Linux kernel bug!”);


  }


  即修改为:


  #if 0


   if (setuid(0) != -1) {


  DIE(”icky Linux kernel bug!”);


  }


  #endif


5>. 错误4: log.c:73 unable to dup2 the error log:bad file descriptor


解决方法:


方法1> 确定日志目录对与所有用户都具有可读/写的权限


方法2> 修改src/log.c (建议采用方法1)


  注释掉


  if (dup2(error_log, STDERR_FILENO) == -1) {


  DIE("unable to dup2 the error log");


  }


  即修改为:


  #if 0


if (dup2(error_log, STDERR_FILENO) == -1) {


   DIE("unable to dup2 the error log");


   }


#endif


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Tiny6410-LED驱动 下一篇Web Boa Tiny6410控制与查看开发..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux 系统监控 的完 (2025-12-27 08:52:29)
·一口气总结,25 个 L (2025-12-27 08:52:27)
·【总结】100个最常用 (2025-12-27 08:52:22)
·有没有哪些高效的c++ (2025-12-27 08:20:57)
·Socket 编程时 Accep (2025-12-27 08:20:54)