Ubuntu搭建boa伺服器
一 、boa原始碼下載
通過boa原始碼官網下載boa原始碼,不同版本的原始碼解壓的檔案內容有所差異,在此我下載的是0.94.13的版本檔名boa-0.94.13.tar.gz。
將檔案拷貝到虛擬機器ubuntu使用者檔案根目錄下解壓得到解壓檔案。
$tar -xf boa-0.94.13.tar.gz
二 、boa原始碼檔案修改
進入src目錄,執行./configure生成Makefile
$cd src
$./configure
修改define.h檔案,修改內容如下:
#define SERVER_ROOT "/boa"
其中 /boa 為以後boa程式執行的配置檔案boa.conf存放的路徑修改boa.c檔案,註釋掉如下程式段:
if (setuid(0) != -1) { DIE("icky Linux kernel bug!"); }
將compat.h中的
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
改為
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
三、編譯配置boa伺服器
執行make生成可執行程式
$make
編譯過程可能發生如下錯誤:
1)yacc -d boa_grammar.y
make: yacc: Command not found
make: *
解決辦法:$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
建立安裝目錄
$mkdir -p /boa /boa/www /boa/cgi-bin /boa/log
將需要的檔案複製到安裝目錄中
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
進入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/
修改boa/資料夾許可權
$chmod 777 *
四、測試boa伺服器
- 在/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