boa服务器怎样运行,boa服务器的配置与编译
上午看了下boa服務器的配置與編譯,還不算難。對我而言,重在理解概念就行。不過,還是基于PC。交叉編譯以后嘗試。
系統:ubuntu10.04
boa版本:boa-0.94.13.tar.gz
內核:linux2.6.32
相關理論:
Boa
是一種非常小巧的Web服務器,其可執行代碼只有大約60KB左右。作為一種單任務Web服務器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理并發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度和安全。
CGI
在物理上是一段程序,運行在服務器上,提供同客戶端HTML頁面的接口。即客戶端與服務器的接口。
比如留言本的工作流程:先由用戶在客戶端輸入一些信息,如名字之類的東西。接著用戶按一下“留言”(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務器的CGI目錄下特定的cgi程序中,于是cgi程序在服務器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的文件中。然后cgi程序給客戶端發送一個信息,表示請求的任務已經結束。此時用戶在瀏覽器里將看到“留言結束”的字樣。整個過程結束。
配置編譯boa服務,構建一小型網頁服務器
使用ps -e查看是否開啟http服務,如果開啟,則關閉。
1.下載boa-0.94.13.tar.gz源碼
解壓在/home/xxxx/boa-0.94.13目錄中。
2.編譯
在/home/xxxx/boa-0.94.13/src/目錄中存放的是boa的源碼,在源碼目錄下配置與編譯。
執行./configure
這是根據configure.in文件進行一系列的配置,生成config.status,configure,和Makefile文件。
如果現實無法執行,要修改該目錄下的configure的屬性為可執行
chmod 755 configure
3.make
這個編譯的是服務程序,在該目錄下生成一個可執行文件boa
編譯過程出現錯誤:
i.
lex boa_lexer.l
make: lex: Command not found
解決:apt-get install flex
編譯一個linux下的c系統,包含詞法和語法分析模塊,Linux上用bison和flex。
yacc是一個文法分析器的生成器,bison即是yacc的GNU版本.Lex和YACC是用于構造詞法分析機和語法解釋器的工具,利用Lex和YACC你可以輕松的構造一個語法解釋器。所以要安裝flex。
ii:
gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
解決:
修改 src/compat.h
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
如果有出現其他錯誤的,可以參看網頁
總結的很詳細。
4.修改配置文件
修改boa-0.94.13目錄下boa.conf
下面是我的配置
User nobody
Group nogroup
ErrorLog /var/log/boa/error_log
AccessLog /var/log/boa/access_log
DocumentRoot /www ? --web服務啟動的目錄在根目錄下的/www
UserDir public_html
DirectoryIndex index.html ?--目錄的索引文件 默認首頁
DirectoryMaker /usr/lib/boa/boa_indexer
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
......
將配置好的boa.conf復制到/etc/boa目錄下。這是個默認目錄。
把www文件復制到根目錄下。
5.啟動web服務
執行./boa
出錯:unable to dup2 the error log: Bad file descriptor
修改log.c
注釋掉
if (dup2(error_log, STDERR_FILENO) == -1) {
DIE("unable to dup2 the error log");
}
過后要重新編譯。
make clean
make
即可啟動web服務
在firefox瀏覽器中輸入虛擬機的IP地址,即可進入women預先設定的主頁。
交叉編譯的可以參考下面的網頁
總結
以上是生活随笔為你收集整理的boa服务器怎样运行,boa服务器的配置与编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曝高通芯片服务将按bug收费 手机厂找到
- 下一篇: 索尼PS VR2将于2月22日全球同步发