BOA服務器搭建步驟


1、下載Boa Webserver的源碼

http://www.boa.org/

2、解壓並編譯Boa Webserver

$ tar xvf boa-0.94.13.tar.gz

由於Boa Webserver的Makefile中沒有install,我們只是進行編譯,然后手動拷貝編譯后的二進制文件到相應的文件目錄中,因此在使用configure時無須指定位置。

同時在make時,可能會出現不少錯誤,部分的錯誤處理方法可以參看<附錄>:

$ cd boa-0.94.13/src/

$ ./configure

$ apt-get install bisonflex   否則會出現錯誤提示

 

修改 src/compat.h 兩處地方 ,否則會出現錯誤提示 

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

修改成#defineTIMEZONE_OFFSET(foo)(foo)->tm_gmtoff

 

若要修改配置文件boa.conf的存放位置,假設修改為"/web",則需修改defines.h

#define SERVER_ROOT "/etc/boa"

修改成 #define SERVER_ROOT "/web" 

 

$ make

 

3、配置Boa Web server環境

 

目錄結構如下:

/web             存放html文件

/web/cgi-bin     存放cgi文件

/etc/boa        存放boa.conf

/bin            存放boa和boa_indexer

 

boa.conf 缺省配置:

User nobody

Group nogroup

DirectoryIndex index.html

CGIPath /bin:/usr/bin:/usr/local/bin

MimeTypes /etc/mime.types

ErrorLog/var/log/boa/error_log

AccessLog /var/log/boa/access_log

 

boa.conf 改動配置:

User 0

Group 0

#DirectoryMaker /usr/lib/boa/boa_indexer#注釋掉,提高訪問速度

#ErrorLog /var/log/boa/error_log  #注釋掉,關閉錯誤日志

#AccessLog /var/log/boa/access_log #注釋掉,關閉訪問日志

DocumentRoot/web                    #存放index.html

ScriptAlias /cgi-bin//web/cgi-bin/  #存放cgi文件

 

boa.conf 添加配置:

AddType text/plain  txt

AddType image/gif  gif

AddType text/html  html

AddType text/html  htm

AddType text/xml   xml

AddType image/jpeg  jpe

AddType image/jpeg  jpeg

AddType image/jpeg  jpg

AddType image/x-icon  ico

 

編譯后在boa-0.94.13/src/中有2個二進制文件,那就是我們需要的執行檔,只需拷貝到/bin中,注意這里的操作權限:

 

$ sudo cp boa/boa-0.94.13/src/boa /bin

$ sudo cp boa-0.94.13/src/boa_indexer /bin

$ ls /bin/boa*

/bin/boa /bin/boa_indexer

 

BoaWebserver的配置文件是boa.conf。該文件需要被放置在/etc/boa目錄下。同時我們需要對boa.conf稍做修改,注意一定是在/etc/boa下的boa.conf進行修改:

 

# sudo mkdir /etc/boa

# cp boa/boa-0.94.13/boa.conf /etc/boa/

# gedit /etc/boa/boa.conf

 

a)【可選配置】找到Group nogroup修改為Group 0; user nobody修改為user 用戶名;

修改Group的參數為0是因為系統中沒有nogroup組,如果你沒有nobody用戶,那么Usernobody也要做相應修改(修改成自己的用戶名亦可)。其它采用默認設置。如有必要,可以參看<附錄>中的參數說明。

b)【可選配置】servername www.your.org.here的注解去掉;

c)修改DocumentRoot后的路徑為 /web,這個是文檔的主目錄;

d)找到ScriptAlias /cgi-bin/ /usr/lib/cgi-bin

  修改為ScriptAlias /cgi-bin/ /web/cgi-bin

e)【可選配置】修改MimeTypes /etc/mime.types為MimeTypes/web/mime.types來指明mime.types文件位置。如果沒有以/開始,則表示從服務器的根路徑開始。可以注釋掉,避免使用mime.types文件,此時需要用AddType在本文件里指明。

 

若開啟日志功能(boa.conf的缺省配置) 

建立日志目錄【目錄/var/log/boa是相關的日志文件保存目錄。】:

# mkdir -p /var/log/boa

 

目錄/web/用於保存HTML文檔,而/web/cgi-bin用於保存CGI腳本。

 

4、測試

編寫cgi測試代碼:

[cpp]  view plain  copy
 
  1. int main(void)  
  2. {  
  3.       printf("Content-type:text/html\n\n"); //這句一定要加上  
  4.       printf(" Hello,world.");  
  5.       exit(0);  
  6. }  


$gcc -o test.cgi test.c

 

在測試之前,需要先運行Boa Webserver。

$sudo boa

注意這里使用的是root權限,如果是普通用戶可能會有報錯。

# ps -aux 查看boa進程已經啟動

 

然后打開瀏覽器,輸入http://192.168.1.194/cgi-bin/test.cgi就可以看到cgi測試效果。

當然192.168.1.194是本機地址。可以使用ifconfig命令查看ip地址。然后輸入也可以達到一樣的效果。

# ifconfig

 

常見錯誤

錯誤1:

request.c: In function ‘get_request’:

request.c:84: warning: pointer targets in passing argument 3 of‘accept’ differ in signedness

gcc -g -O2 -pipe -Wall -I.  -c -o response.o response.c

gcc -g -O2 -pipe -Wall -I.  -c -o select.o select.c

gcc -g -O2 -pipe -Wall -I.  -c -o signals.o signals.c

gcc -g -O2 -pipe -Wall -I.  -c -o util.o util.c

util.c:100:1: error: pasting "t" and "->" doesnot give a valid preprocessing token

make: *** [util.o] Error 1

解決辦法:根據提示修改源碼中的src/compat.h文件。

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

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

 

錯誤2:

[17/Aug/2013:09:28:17 +0000] boa.c:226 - icky Linux kernel bug!: Success
解決辦法:注釋掉boa.c的226行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM