Chinaunix首页 | 论坛 | 博客
  • 博客访问: 977917
  • 博文数量: 632
  • 博客积分: 2778
  • 博客等级: 大尉
  • 技术积分: 3387
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 09:09
个人简介

123

文章分类

全部博文(632)

文章存档

2014年(36)

2013年(33)

2012年(563)

分类: LINUX

2012-12-26 09:24:37

转自:http://blog.csdn.net/hongjiujing/article/details/1795941


 是一套小型的網頁伺服器,很適合應用在 Embedded System 上,並且內建就可以直接支援以 C 寫的 CGI 網頁,這篇是移植 Boa ARM9 S3C2410 平台的過程,Linux 版本為 2.6.17.4,使用 arm-linux toolchain 3.4.1 編譯。

1. 產生 Makefile
下載 Source code 並解壓縮進到 src 目錄。
# ./configure –host=arm-linux

2. 修改 Makefile 使用跨平台編譯
CC = 
arm-linux-gcc
CPP = 
arm-linux-gcc -E
# make (
如果編譯或執行時有錯誤請看Q&A)
# arm-linux-strip boa

3. 配置 Boa
可以在源碼目錄找到這個設定檔,放到 /etc/boa 裡面,有修改的部份如下:
User 0
Group 0
#DirectoryMaker /usr/lib/boa/boa_indexer
CGIPath /bin:/usr/bin:/var/www/cgi-bin
ScriptAlias /cgi-bin/ /var/www/cgi-bin/

然後需要放一個 mime.types 檔案在 /etc,我是直接複製 ubuntu 裡的檔案。

4. 加入 boa 執行檔
將編譯好的 boa 執行檔加入檔案系統 /bin,要啟動 server 只要輸入 boa 即可,可到 /var/log/boa 查看 log

問題 Q&A

Q
:使用 toolchain 3.4.1 編譯出現錯誤
arm-linux-gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: pasting “t” and “->” does not give a valid preprocessing token
make: *** [util.o] Error 1
A
:修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

Q:執行 boa 出現 “gethostbyname::No such file or directory”
A
:需將 boa.conf 裡的 ServerName 開頭註解拿掉

Q:無法啟動 Boaerror log 顯示 “boa.c:266.icky Linux kernel bug!:No such file”
A
:修改 src/boa.c,將底下判斷式註解掉:
/*if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}*/
重新編譯

Q:無法啟動 Boaerror log 顯示 “boa.c:211 - getpwuid….略”
A
:修改 src/boa.c,將底下兩個判斷式註解掉:
/*if (passwdbuf == NULL) {
DIE(”getpwuid”);
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE(”initgroups”);
}*/
重新編譯


阅读(274) | 评论(0) | 转发(0) |
0

上一篇:site训令的知识简介

下一篇:boa问题!(转)

给主人留下些什么吧!~~