歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Boa Web服務器在PC上移植

Boa Web服務器在PC上移植

日期:2017/3/1 11:15:36   编辑:Linux編程
boa是一個非常小巧的Web服務器,可執行代碼只有約60KB。它是一個單任務Web服務器,只能依次完成用戶的請求,而不會fork出新的進程來處理並發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。下面我們講解以下boa如何在PC機(虛擬機RedHatAS5環境)完成移植修改工作。

boa下載地址:

下載在Linux公社的1號FTP服務器裡,下載地址:

FTP地址:ftp://www.linuxidc.com

用戶名:www.linuxidc.com

密碼:www.muu.cc

在 2011年LinuxIDC.com\10月\Boa Web服務器在PC上移植

下載方法見 http://www.linuxidc.net/thread-1187-1-1.html

一、配置編譯boa

1. #tar zxvf boa-0.94.13.tar.gz

2. #mv boa-0.94.13 boa_pc

3. #cd boa_pc/src

4.boa.conf生效目錄設置

boa啟動過程中需要讀取一個配置文件:boa.conf,它的路徑由以下文件決定

第30行 #define SERVER_ROOT "/etc/boa",默認為/etc/boa文件夾

我們為了統一路徑起見,改為:"/home/boa",接下來所有跟boa有關的文件我們都放在/home/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. 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.建立/home/boa目錄, 並復制boa.conf到/home/boa目錄下,並按照以下步驟進行修改。

#mkdir /home/boa

#cp boa.conf /home/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 /home/boa/error_log

AccessLog /home/boa/access_log

(注意:這裡/home/boa目錄必須為可寫,否則會出項錯誤:log.c:73 – Unable to dup2 the error log: Bad file r.)

5. 設置html文件目錄:

默認為:DocumentRoot /var/www

我們統一修改為:

DocumentRoot /home/boa/www

6. 設置默認首頁: DirectoryIndex index.html

這是訪問網頁時若不指定訪問的網頁名稱,服務器默認返回的網頁,我們不做修改

7. 設置cgi腳本目錄: 將

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin

修改為

ScriptAlias /cgi-bin/ /home/boa/cgi-bin

注:boa提供cgi編程接口,使得網頁具有交互能力,後面我們在做講解.

8.測試

在/home/boa/www中隨意放一個測試網頁(必須包含index.html文件)

我們這裡隨便建一個文件取名為index.html,裡面寫一個:hello boa...

在IE中敲入:http://192.168.1.101/ 即可看到剛才的helloo boa

證明整個boa搭建成功.

Copyright © Linux教程網 All Rights Reserved