boa伺服器搭建及移植
1、解壓
將下載的原始碼壓縮包放到某目錄下,然後執行:
tar –xvzf boa-0.94.13.tar.tar
sudo apt-get install bison flex
否則會出現如下錯誤
make: yacc:命令未找到
make: *** [y.tab.c] 錯誤 127
make: lex:命令未找到
make: *** [lex.yy.c] 錯誤 1
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
(2)修改 src/log.c 註釋掉
if (dup2(error_log, STDERR_FILENO) == -1) { DIE("unable to dup2 the error log"); } 為:
/*if (dup2(error_log, STDERR_FILENO) == -1) { DIE("unable to dup2 the error log"); }*/ 否則會出現錯誤:
log.c:73 unable to dup2 the error log:bad file descriptor
(3)修改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
否則會出現錯誤:boa.c:211 - getpwuid: No such file or directory
註釋掉下面語句:
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
為
#if 0
if (setuid(0) != -1) {
DIE(”icky Linux kernel bug!”);
}
#endif
3.執行:./configure
之後,可以檢視,生成了些新檔案:
再執行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檔案(網頁首頁)
<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
</HEAD>
<BODY>
Hello,my world!
</BODY>
</HTML>
儲存為index.html,並存至/var/www目錄下
8.啟動伺服器
執行./boa
通過ps -e檢視:
可見,程序PID為3449,表明已經啟動成功。此時,也可以檢視日誌檔案:vi /var/log/boa/error_log
可以看到伺服器啟動的程序ID和埠號。
9.訪問伺服器
成功啟動後,當然要看看是否真正可以通過瀏覽器看到伺服器中的網頁。
開啟網頁,輸入本機的ip(我的是虛擬機器,ip地址設定為是192.168.1.3)
則可以看到網頁:
看吧,成功了
這是PC機上的搭建
主要是修改Makefile
CC =arm-linux-gcc
CPP = arm-linux-gcc–E
然後交叉編譯 ftp進板子
以下配置和boa.conf的配置有關,都是在ARM根檔案系統中建立
以下步驟在開發板上進行:
建立目錄/etc/boa並且把boa 和 boa.conf拷貝到這個目錄下
mkdir /etc/boa
建立HTML文件的主目錄/www
mkdir /www點選開啟連結
建立CGI指令碼所在錄 /www/cgi-bin
mkdir /www/cgi-bin
以下步驟在ubuntu下進行:
將boa.conf拷貝到開發板根檔案系統的/etc/boa下
#cp boa.conf /source/rootfs/etc/boa
將boa拷貝到開發板根檔案系統的/etc/boa下
#cp src/boa /source/rootfs/etc/boa
將ubuntu下/etc/mime.types拷貝到開發板根檔案系統的/etc下
#cp /etc/mime.types /source/rootfs/etc
將你的主頁index.html拷貝到www目錄下
點選開啟連結這是boa和cgi程式搭建的一個基礎教程 注意CGI的編寫規範 開頭