嵌入式转linux服务器,嵌入式linux下web服务器搭建
一、移植編譯生成boa二進制文件
Boa是一種非常小巧的Web服務器,其可執行代碼只有大約60KB左右。作為一種單任務Web服務器,Boa只能依次完成用戶的請求,而不會fork出新的進程來處理并發連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執行。Boa的設計目標是速度和安全。
解壓到特定目錄,本人使用的是/opt目錄,使用命令:
#tar zxvf boa-0.94.13.tar.gz –C /opt
配置boa:
切換到目錄# cd /opt/boa-0.94.13/src運行./configure
會在boa-0.94.13/src目錄下生成Makefile文件,修改該文件,主要是修改編譯器的選擇,從而適合ARM。修改31、32行如下(具體要看你的交叉編譯器在哪個目錄下面):
CC = /opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-gcc
CPP = /opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-g++ -E
接著修改src/boa.c文件:
注釋掉225到227行的內容:
// if (setuid(0) != -1) {
// DIE (“icky Linux kernel bug!”);
// }
修改src/compat.h文件如下:
#define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
最后編譯并且優化:
在src目錄下,直接輸入make命令即可完成編譯,輸入ls –l boa,可到如下圖所示結果:
表明成功生成了二進制文件
接下來為二進制文件瘦身!!輸入arm-linux-strip boa即可,運行結果如下圖所示。
相比上一個,明顯小了很多了。
二、移植cgic
#tar zxvf cigc205.tar.gz –C /opt
切換到cgic目錄下,并修改Makefile文件,修改如下所示:
在開始出修改
CC=/opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-gcc
AR=/opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-ar
RANLIB=/opt/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-ranlib
此外還需修改22行和25行如下:
$(CC) $(CFLAGS) cgictest.o –o cgictest.cgi ${LIBS}
$(CC) $(CFLAGS) capture.o –o capture ${LIBS}
輸入make命令進行編譯。編譯生成capture的可執行文件和次使用的cgictest.cgi文件
優化輸入arm-linux-strip capture即可。
三、配置WEB服務器
3.1在文件系統中配置boa
可以直接打開/opt/boa-0.94.13/boa.conf進行修改,主要修改一下幾個參數的配置。
Port 80使用默認的即可
Listen 192.168.1.6這個使用自己ARM板子的IP地址
User root板子使用者
Group root作為哪個用戶運行,即它擁有該用戶組的權限,一般是root需要在/etc/group文件中有root組
ErrorLog /dev/console錯誤日志文件。如果沒有以/XXX開始,則表示從服務器的根路徑開始。如果不需要錯誤日志,則用/dev/null。系統啟動后看到的boa的打印信息就是由/dev/console得到
ServerName自己寫GentleHacker
DocumentRoot /web這個是存放html文檔的主目錄,非常重要,瀏覽器訪問的時候會訪問其中內容
DiectoryIndex index.html???html目錄索引的文件名
CGIPath /bin:/usr/bin:/usr/local/bin提供CGI程序的PATH環境變量值
ScriptAlias /cgi-bin /web/cgi-bin/非常重要,指明CGI腳本的虛擬路徑對應的實際路徑,筆者是在根文件系統下創建web目錄的,所以這么設置。
在配置工作做好以后,將兩個文件拷貝到已有的ramdisk文件中,具體操作如下。
1.首先請參考我轉載的博文ramdisk介紹與制作,筆者將ramdisk文件系統掛在在/mnt/loop下。
2.將/opt/boa-0.94.13/src/boa拷貝到文件系統ramdisk下的sbin目錄下,從而為文件系統提供新的命令
3.將配置文件/opt/boa-0.94.13/boa.conf拷貝到etc/boa下
完成上面幾步之后則完成了boa服務器到ARM開發板文件系統的移植。
3.2配置CGIC庫
首先在文件系統ramdisk的根目錄下創建目錄web。
進入目錄# cd web
接著執行命令?# mkdir cgi-bin
將在第二步驟中生成好的capture和cgictest.cgi拷貝到目錄cgi-bin下,從而完成了cgic的移植。
總結
以上是生活随笔為你收集整理的嵌入式转linux服务器,嵌入式linux下web服务器搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: toad连接oracle12c,[201
- 下一篇: 用linux运行sublime,在Dee