一. boa簡介
boa是一個嵌入式web服務器,小巧而且高效,是可以unix或linux下使用,支持cgi的、非常適合於嵌入式系統的單任務的http服務器,源代碼開放、性能高。
二. boa源碼
源碼下載可以到:http://www.boa.org/ 進行下載。下載後可得boa的壓縮包(boa-0.94.13.tar.gz)
三. boa配置和使用
1. 有了boa的壓縮包之後,就可以開始使用了,首先是從解壓縮包開始,而後進入解壓後的目錄中的src,執行./configure,生成對應的Makefile文件。具體的命令如下:
#tar zxvf boa-0.94.13.tar.gz (解壓)
#cd ./boa-0.94.13/src (進入到src)
#./configure (配置)
2. 在執行make編譯之前,首先要做如下的修改,要不然會報錯。
a. 修改boa-0.94.13/src/compat.h。打開#gedit boa-0.94.13/src/compat.h將(去掉##)
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 改爲
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
b. 修改boa-0.94.13/boa.conf文件。打開#gedit boa-0.94.13/boa.conf
User nobody -> User 0
Group nogroup -> Group 0
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ -> ScriptAlias /cgi-bin/ /var/www/cgi-bin/
關於boa.conf文件的詳解:
Port:boa服務器監聽的端口,默認的端口是80。如果端口小於1024,則必須是 root用戶啓動服務器。
Listen:綁定的ip地址。不使用這個參數時,將綁定所有的地址。
User:連接到服務器的客戶端的身份,可以是用戶名或UID。
Group:連接到服務器的客戶端的組,可以是組名或GID。
ServerAdmin:服務器出故障時要通知的郵箱地址。
ErrorLog:指定錯誤日誌文件。如果路徑沒有以"/"開始,則相對於ServerRoot路徑。沒有配置時默 認的文件是/dev/stderr。若不想記錄日誌,指定文件爲/dev/null。
AccessLog:設置存取日誌文件,與ErrorLog類似。
UseLocaltime:設置使用本地時間,使用UTC時註釋這個參數。這個參數沒有值。
VerboseCGILogs:在錯誤日誌文件中記錄CGI啓動和停止時間,若不記錄,註釋這個參數。這個參數沒有值。
ServerName:指定服務器的名稱,當客戶端使用gethostname + gethostbyname時返回給客戶端。
VirtualHost:虛擬主機開關。使用此參數,則會在DocumentRoot設定的
目錄添加一個ip地址作爲新的DocumentRoot來
處理客戶端的請求。如DocumentRoot設置爲/var/www,則http://localhost/轉換 成/var/www/127.0.0.1/,若註釋此參數,則爲/var/www/。
DocumentRoot:HTML文件的根目錄(也就是網站的目錄)。
UserDir:指定用戶目錄。
DirectoryIndex:指定預生成目錄信息的文件,註釋此變量將使用DirectoryMaker變量。這個變量也就是設置默認主頁的文件名。
DirectoryMaker:指定用於生成目錄的程序,註釋此變量將不允許列目錄。
DirectoryCache:當DirectoryIndex文件不存在,而DirecotryMaker又被註釋掉時,將列出這個參數指定目錄給客戶端。
KeepAliveMax:每個連接允許的請求數量。如果將此值設爲" 0 ",將不限制請求的數目。
KeepAliveTimeOut:在關閉持久連接前等待下一個請求的秒數。(秒)。
MimeTypes:設置包含mimetypes信息的文件,一般是/etc/mime.types。
DefaultType:默認的mimetype類型,一般是text/html。
CGIPath:相當於給CGI程序使用的$PATH變量。
SinglePostLimit:一次POST允許最大的字節數,默認是1MB。
AddType: 增加MimeType沒有指定的類型,例: AddType type extension [extension ...]。要使用cgi,必須添加cgi類型:AddType application/x-httpd-cgi cgi
Redirect:重定向文件。
Aliases:指定路徑的別名。
ScriptAlias:指定腳本路徑的虛擬路徑。
c.創建相應的文件夾及文件
1. 在/etc下創建boa文件夾,並添加文件boa.conf
#cd /etc
#mkdir boa
#cp boa-0.94.13/boa.conf /etc/boa
2.在/var/log添加boa文件夾及文件
#cd /var/log
#mkdir boa
#cd boa
#touch access_log
#touch error_log
d.在/var中添加www文件夾並增加相應的文件,index.html文件也要存放在/var/www這個文件夾下。
#cd /var
#mkdir www
#cd www
#mkdir cgi-bin
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>我的第一個樣式頁面</title> </head> <body> <!-- 目錄 --> <ul class="navbar"> <li><a href="index.html">首頁</a> <li><a href="musings.html">連接1</a> <li><a href="town.html">連接2</a> <li><a href="links.html">連接3</a> </ul> <!-- 主要內容 --> <h1>我的第一個樣式頁面</h1> <p>welcome to milesight. <p>hello world. <p>這只是個例子, 好象沒什麼好寫. <!-- 簽名和日期 --> <address>2014年5月19日製作</address> </body> </html>四.boa編譯與執行
#cd boa-0.94.13/src (切到boa項目文件夾中)
#make clean
#make (編譯)
#./bao (執行)
五.測試
打開瀏覽器,輸入當前對應的IP,就可以訪問,自己的index.html主頁了。