Ubuntu 10.04——boa服務器的搭建

   聲明:自從第一次發表博文不知不覺過去了很久了,很是抱歉沒能把本身的東西分享出來,可是因爲上家公司本月初裁人,因此導致學的新東西成了半成品,無奈又換了一家,目前已工做三週了,本身也很想寫博文分享知識,可是學的東西太雜,有都是半成品,確實不知道以什麼爲切入點,目前這家公司最近一直在作項目,我想先一點點的寫吧,雖然個人東西能在網上找到不少樣本,可是我感受有的不全,仍是本身總結的東西比較靠譜,但願對你們有所幫助,若是有新問題,我會不斷更新的,好了,廢話很少說了。。。html

               Ubuntu 10.04配置boa服務器web

1、下載boa源碼(root權限下的命令行):服務器

  # wget http://www.boa.org/boa-0.94.13.tar.gz工具

  解壓:# tar zxvf boa-0.94.13.tar.gz測試

(解壓前建議單獨創建一個boa文件:# mkdir boa)flex

2、安裝須要的工具:bison、flex;ui

(這兩個工具我也沒弄清楚具體幹什麼的,在網上查查只知道是什麼語法解析器和掃描器,我看網上大部分說明都有這個步驟)spa

  # apt-get install bison flex命令行

3、生成Makefile文件:日誌

  # cd boa-0.94.13/src

  # ./configure

4、爲了保證make不出現錯誤的話必須修改一些文件:

(爲了更方便了解如下步驟的操做目的,建議再打開一個終端,打開相應文件對比着看就明白了)

一、boa配置文件 boa.conf 的路徑的設定:

   此文件的路徑應與src/defines.h 中SERVER_ROOT "/etc/boa" 的值一致:

  # cd /etc/

  # mkdir boa

  # cp /home/qiang/share/boa/boa-0.94.13/boa.conf /etc/boa -R(前面是個人文件所在目錄)

  以後再回到boa/src下:# make

  這時會報錯:

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

修改compat.h:

  # vi compat.h(在編輯模式下:/foo##快速找到如下語句)

將 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 改成:

#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff

修改boa.c:

  # vi boa.c

將如下四行註釋掉:

    if(setuid(0) != -1)         

    {       

      DIE(」icky Linux kernel bug!」);        

    }

不然啓動boa時會出現:

boa.c:226 - icky Linux kernel bug!No such file or directory!

(有的版本中沒有這個提示,可是個人出現了,因此通過查找才得以解決)

  # make

5、在啓動src/boa前需修改配置文件:

  # vi /etc/boa/boa.conf

一、修改 servername 去掉註釋(#),修改User nobody 和 Group nogroup 改成 User 0 、Group 0;

二、定義的是web服務器的文件根目錄,即設定的值 DocumentRoot 默認爲 "/var/www"

  # cd /var/

  # mkdir www

  # chmod 777 www

三、配置日誌文件的目錄及日誌文件:

(1)錯誤報告 ErrorLog 默認位置:/var/log/boa/error_log

(2)訪問報告 AccessLog 默認位置:/var/log/boa/access_log

  # mkdir log/boa -p(/var目錄下)

  # chmod 777 log/boa -R

  # touch error_log/touch access_log

(這兩個文件能夠幫助你查看後期操做遊覽器的訪問狀態信息)

四、cgi程序的存放:

  # vi /etc/boa/boa.conf

將最後一行 ScriptAlias  /cgi-bin  /usr/lib/cgi-bin/ 改成:

ScriptAlias  /cgi-bin  /var/www/cgi-bin(用於存放.cgi文件)

(建議後期在web開發下本身建立www文件夾時建立cgi-bin文件夾,再後期運行時可直接將整個www文件下的文件所有cp過來)

  啓動boa服務器:

切換到初期解壓的源碼目錄下: # cd src/

  # ./boa 

ps -e 查看是否存在 boa 進程,若無,則查看錯誤報告,若提示:

[23/Apr/2012:23:58:59 +0000] boa.c:194 -unable to bind:Address already in use

此句表示端口被佔用,boa服務器默認的端口是 80 ,好比 ngix 服務器默認的端口也是 80 ,因此會存在這種狀況的發生,爲了不這一錯誤,咱們通常修改端口爲8080:

  # vi /etc/boa/boa.conf

將 Port 80 改成 Port 8080

此時再 ps -e 查看進程,若存在 boa 則證實成功!好了,kill掉進程重啓一下進行測試吧!

6、測試程序:

在/var/www/下創建index.html文件:# vi index.html(無法插如圖片,只能粘貼以下)

<!DOCTYPE html>

<html>   

  <head>     

    <meta http-equiv="content-type" content="text/html; charset=gb2312" />     

    <title>This is a test program!</title>   

  </head>
  <body>     

    <h1>This is a test!</h1>     

    <br />     

    <br />     

    <a href="./cgi-bin/test.cgi">To cgi page!</a>    

  </body>

</html>

  # mkdir /var/www/cgi-bin -R

  # cd cgi-bin

  # vi test.c

  include <stdio.h>

  int main()   

  {     

    printf("Content-type:text/html\n\n");// 這句必須存在;     

    printf("<html><body>");     

    printf("<font style=\"color:red;font-size:30px;\">Hello CGI!</font><br />");     

    printf("<a href=\"../index.html\">return index.html</a>");     

    printf("</body></html>");     

    return 0;   

  }

  # gcc test.c -o test.cgi

而後打開遊覽器,輸入虛擬機地址或127.0.0.1:8080(端口號已改),這樣就能看到剛剛寫的頁面了。。。

相關文章
相關標籤/搜索