前面已經在PC機上完成了boa服務器的移植工作,《Boa Web服務器在PC上移植 》見http://www.linuxidc.com/Linux/2011-10/44729.htm, 下面介紹一下在S3C2440硬件平台上如何完成相應工作,兩者大同小異,細節上稍有不同,不同之處我用紫色標注了出來
一、配置編譯boa
1. #tar zxvf boa-0.94.13.tar.gz
2. #mv boa-0.94.13 boa_arm
3. #cd boa_arm/src
4.boa.conf生效目錄設置
boa啟動過程中需要讀取一個配置文件:boa.conf,它的路徑由以下文件決定
第30行 #define SERVER_ROOT "/etc/boa",默認為/etc/boa文件夾
我們為了統一路徑起見,改為:"/usr/boa",接下來所有跟boa有關的文件我們都放在/usr/boa下
5.修改src/boa.c
注釋掉下面語句:
if (setuid(0) !=-1)
{
DIE(”icky Linux kernel bug!”);
}
即修改為:
#if 0
if(setuid(0) != -1)
{
DIE(”icky Linux kernel bug!”);
}
#endif
否則運行boa時會提示boa.c:226 - icky Linux kernel bug!: No suchfile or directory錯誤
6. #./configure
7.修改交叉編譯器
修改Makefile文件:
將:
CC = gcc
CPP = gcc -E
該為:
CC = arm-linux-gcc
CPP = arm-linux-gcc -E
8. make
在當前目錄下生成一個boa的可執行程序,./boa運行即可,ps能看到boa的進程即說明boa正常工作.
注:有些編譯器會提示以下錯誤,按相應方法解決即可.
util.c: 100: 1: pasting “t” and “->”does not give a valid preprocessing token make: [util.o] Error1
解決方法:
方法>. 修改compat.h中的
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
為:
#define TIMEZONE_OFFSET(foo)foo->tm_gmtoff
二> 修改配置文件boa.conf
1.建立/usr/boa目錄, 並復制boa.conf到/usr/boa目錄下,並按照以下步驟進行修改。
#mkdir /usr/boa
#cp boa.conf/usr/boa
2.訪問端口號設置
大概25左右:Port 80,可以設定我們訪問網頁時的端口號默認為80—訪問時無需指定
假如改變了此端口號為8080,必須以下列格式訪問: http://192.168.1.3:8080
一般在同一個電腦上運行多個boa服務器時可采用此方法
我們這裡保持默認即可
3. 修改訪問權限:
修改User nobody 為 user 0
修改Group nogroup 為 group 0
4. 設定日志目錄:boa日志有兩部分,Errorlog 和 AccessLog
默認為/var/log/boa/error_log和/var/log/boa/access_log兩個文件。
所以我們統一修改為:
ErrorLog /usr/boa/error_log
AccessLog /usr/boa/access_log
(注意:這裡/home/boa目錄必須為可寫,否則會出項錯誤:log.c:73 – Unable to dup2 the error log: Bad file r.)
5. 設置html文件目錄:
默認為:DocumentRoot /var/www
我們統一修改為:
DocumentRoot /usr/boa/www
6. 設置默認首頁: DirectoryIndex index.html
這是訪問網頁時若不指定訪問的網頁名稱,服務器默認返回的網頁,我們不做修改
7. 設置cgi腳本目錄: 將
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin
修改為
ScriptAlias /cgi-bin/ /usr/boa/cgi-bin
注:boa提供cgi編程接口,使得網頁具有交互能力,後面我們在做講解.
8. mime.types存放目錄, 可在boa.conf文件中修改。
如: MimeTypes /usr/boa/mime.types
或者將boa.conf文件中
MimeTypes /etc/mime.types
修改為:
MimeTypes /dev/null
9.把boa.conf大約第94行的注釋去掉
ServerName www.your.org.here
10.測試
在/usr/boa/www中隨意放一個測試網頁(必須包含index.html文件)
我們這裡隨便建一個文件取名為index.html,裡面寫一個:hello boa...
在IE中敲入:http://192.168.1.101/ 即可看到剛才的helloo boa
證明整個boa搭建成功.