1. 程式人生 > >Ubuntu搭建boa伺服器

Ubuntu搭建boa伺服器

一 、boa原始碼下載

  1. 通過boa原始碼官網下載boa原始碼,不同版本的原始碼解壓的檔案內容有所差異,在此我下載的是0.94.13的版本檔名boa-0.94.13.tar.gz。

  2. 將檔案拷貝到虛擬機器ubuntu使用者檔案根目錄下解壓得到解壓檔案。

    $tar -xf boa-0.94.13.tar.gz
    這裡寫圖片描述

二 、boa原始碼檔案修改

  1. 進入src目錄,執行./configure生成Makefile

    $cd src

    $./configure

  2. 修改define.h檔案,修改內容如下:
    #define SERVER_ROOT "/boa"

    這裡寫圖片描述
    其中 /boa 為以後boa程式執行的配置檔案boa.conf存放的路徑

  3. 修改boa.c檔案,註釋掉如下程式段:

    if (setuid(0) != -1) {
                DIE("icky Linux kernel bug!");
            }

    這裡寫圖片描述

  4. 將compat.h中的

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

改為

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

這裡寫圖片描述

三、編譯配置boa伺服器

  1. 執行make生成可執行程式

    $make

    編譯過程可能發生如下錯誤:
    1)yacc -d boa_grammar.y
    make: yacc: Command not found
    make: *

    [y.tab.c] Error 127
    解決辦法:

    $sudo apt-get install bison

    2)lex boa_lexer.l
    make: lex: Command not found
    make: * [lex.yy.c] Error 127
    解決辦法:

    $sudo apt-get install flex

  2. 建立安裝目錄

    $mkdir -p /boa /boa/www /boa/cgi-bin /boa/log

  3. 將需要的檔案複製到安裝目錄中

    1)將boa-0.94.13/src目錄下生成的boa、boa_indexer二進位制檔案複製到/boa下

    $cp src/boa /boa

    $cp src/boa_indexer /boa

    2)將boa-0.04.13目錄下的boa.conf檔案複製到/boa下

    $cp boa.conf /boa

    3)將/etc/mime.types複製到/boa目錄

    $cp /etc/mime.tpes /boa

  4. 進入boa資料夾目錄,修改boa.conf配置檔案,boa啟動時會載入該檔案。

    $cd /boa

    $vi boa.conf

    需要修改內容如下:
    
            ...
            Port 8080
            ...
            User 0
            Group 0
            ...
            ErrorLog /boa/log/error_log
            ...
            AccessLog /boa/log/access_log
            ...
            DocumentRoot /boa/www
            ...
            DirectoryMaker /boa/boa_indexer
            ...
            MimeTypes /boa/mime.types
            ...
            ScriptAlias /cgi-bin/ /boa/cgi-bin/
    
  5. 修改boa/資料夾許可權

    $chmod 777 *

四、測試boa伺服器

  1. 在/boa/www下新建測試index.html,內容如下:
    <HTML>
        <HEAD>
            <TITLE>Hello World</TITLE>
        </HEAD>
            <BODY>
                Hello,my world!
            </BODY>
    </HTML>

2、確保ubuntu能上網,在瀏覽器中輸入ubuntu的ip以及埠號,例如:

192.168.0.106:8080

這裡寫圖片描述

拓展:將boa新增到系統環境變數

sudo vi /etc/bash.bashrc

在檔案尾部新增:

export PATH=$PATH:/boa

儲存退出後更新系統環境變數:

sudo source /etc/bash.bashrc

之後便可以直接在shell裡面執行boa