日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

Boa服務器移植

出處:davidli88 發(fā)布于:2009-06-04 15:21:59

  作者:曹忠明,華清遠見嵌入式學院講師。

 

  Boa是一種非常小巧的Web服務器,其可執(zhí)行代碼只有大約60KB左右。作為一種單任務Web服務器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理并發(fā)連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執(zhí)行。Boa的設計目標是速度和安全。

  下面給大家介紹一下Boa服務器移植的具體操作步驟,希望能夠有幫助。

  環(huán)境

  主機:ubuntu8.10

  交叉工具鏈:gcc-3.4.5-glibc-2.3.6

  目標:s3c2410開發(fā)板

  結(jié)合網(wǎng)上一些文檔,整理了一個比較完整的文檔。

  1.Boa源碼

  地址: https://www.boa.org/

  發(fā)行版本: 0.94.13

   boa-0.94.13.tar.gz

  解壓:# tar xzf boa-0.94.13.tar.gz

  2.安裝需要工具bisON,flex

  sudo apt-get install bison flex

  否則會出現(xiàn)如下錯誤

  make: yacc:命令未找到

  make: *** [y.tab.c] 錯誤 127

  make: lex:命令未找到

  make: *** [lex.yy.c] 錯誤 127

  3.修改文件

  (1)修改 src/compat.h

  找到

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

  修改成

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

  否則會出現(xiàn)錯誤:

  util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token make: *** [util.o] 錯誤 1

  (2)修改 src/log.c

  注釋掉

  if (dup2(error_log, STDERR_FILENO) == -1) {

  DIE("unable to dup2 the error log");

  }

  為:

  /*if (dup2(error_log, STDERR_FILENO) == -1) {

  DIE("unable to dup2 the error log");

  }*/

  否則會出現(xiàn)錯誤:

  log.c:73 unable to dup2 the error log:bad file descriptor

  (3)修改src/boa.c

  注釋掉下面兩句話:

  if (passwdbuf == NULL) {

  DIE(”getpwuid”);

  }

  if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

  DIE(”initgroups”);

  }

  為

  #if 0

  if (passwdbuf == NULL) {

  DIE(”getpwuid”);

  }

  if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {

  DIE(”initgroups”);

  }

  #endif

  否則會出現(xiàn)錯誤:boa.c:211 - getpwuid: No such file or directory

  注釋掉下面語句:

  if (setuid(0) != -1) {

  DIE(”icky Linux kernel bug!”);

  }

  為

  #if 0

  if (setuid(0) != -1) {

  DIE(”icky Linux kernel bug!”);

  }

  #endif

  否則會出現(xiàn)問題:boa.c:228 - icky Linux kernel bug!: No such file or directory

  4、生成Makefile文件

  執(zhí)行:

  #cd boa-0.94.13/src

  #./configure

  5、修改Makefile

  cd src

  vim Makefile

  修改CC = gcc 為 CC = ARM-softfloat-linux-gnu-gcc

  修改CPP = gcc -E 為 CC = arm-softfloat-linux-gnu-gcc -E

  6、編譯

  make

  ls -l boa

  -rwxr-xr-x 1 david david 189223 2009-05-31 13:44 boa

  然后為生成的二進制文件boa瘦身

  arm-softfloat-linux-gnu-strip boa

  ls -l boa

  -rwxr-xr-x 1 david david 61052 2009-05-31 13:51 boa

  可以發(fā)現(xiàn)boa的大小前后差距很大這為我們節(jié)省了很大的空間

  7、Boa的配置

  這一步的工作也在電腦主機上完成。

  在boa-0.94.13目錄下已有一個示例boa.conf,可以在其基礎上進行修改。如下:

  #vi boa.conf

  (1)Group的修改

  修改 Group nogroup

  為 Group 0

  (2)user的修改

  修改 User nobody

  為 User 0

  (3)ScriptAlias的修改

  修改ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

  為 ScriptAlias /cgi-bin/ /www/cgi-bin/

  (5)DoucmentRoot的修改

  修改DoucmentRoot /var/www

  為DoucmentRoot /www

  (6)ServerName的設置

  修改#ServerName www.your.org.here

  為 ServerName www.your.org.here

  否則會出現(xiàn)錯誤“gethostbyname::No such file or directory”

  (7)AccessLog修改

  修改AccessLog /var/log/boa/access_log

  為#AccessLog /var/log/boa/access_log

  否則會出現(xiàn)錯誤提示:“unable to dup2 the error log: Bad file descriptor”

  (8)以下配置和boa.conf的配置有關,都是在ARM根文件系統(tǒng)中創(chuàng)建

  以下步驟在開發(fā)板上進行:

  創(chuàng)建目錄/etc/boa并且把boa 和 boa.conf拷貝到這個目錄下

  mkdir /etc/boa

  創(chuàng)建HTML文檔的主目錄/www

  mkdir /www

  創(chuàng)建CGI腳本所在錄 /www/cgi-bin

  mkdir /www/cgi-bin

  以下步驟在ubuntu下進行:

  將boa.conf拷貝到開發(fā)板根文件系統(tǒng)的/etc/boa下

  #cp boa.conf /source/rootfs/etc/boa

  將boa拷貝到開發(fā)板根文件系統(tǒng)的/etc/boa下

  #cp src/boa /source/rootfs/etc/boa

  將ubuntu下/etc/mime.types拷貝到開發(fā)板根文件系統(tǒng)的/etc下

  #cp /etc/mime.types /source/rootfs/etc

  將你的主頁index.html拷貝到www目錄下

  8、測試

  打開一個瀏覽器輸入開發(fā)板ip看看效果OK

  “本文由華清遠見https://www.embedu.org/index.htm提供”



  
關鍵詞:Boa服務器移植S3C2410服務器

版權與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。

如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。

OB2269適用于服務器UPS不間斷電源,也適用于液晶電源模塊中!具備低啟動電流,內(nèi)置OCP補償和完善的保護功能!
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術客服:

0571-85317607

網(wǎng)站技術支持

13606545031

客服在線時間周一至周五
9:00-17:30

關注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!