嵌入式Linux Web 編程

來源:互聯網
上載者:User

好久沒有寫文章了,最近比較忙了,論文、實習……一堆事情,廢話少說,直奔主題

 

今天來談談最近做的一個東西,在用的freescale Imx27中架一個WEB server ,其實就是一個簡單的B/S架構了。

 

首先,既然是一個WEB server ,那麼肯定有一個伺服器了,在一個嵌入式板子上,不可能架一個像apache這麼大的伺服器的,即使架在裡面,整個板子的效能是可想而知的……

 

1.一步一步來,首先需要選擇什麼樣的伺服器,一些好心的人,已經為我們提供了蠻多的嵌入式server了,只要我們配置一下環境就可以了。有  boa,httpd,yhttpd,easyhtpd,lighttpd 等等了,具體選擇哪個,根據你的愛好了……

  這裡我選擇了一個thttpd ,你可以到網上下載一個了,具體怎麼找,百度之……google之……

 1)這裡我下載了一個thttpd-2.25b.tar.gz

 2)解壓tar xzvf thttpd-2.25b.tar.gz

 3)cd thttpd-2.23b

 4)修改Makefile檔案中的CC ,選擇你的交叉編譯器了

    CC      = /opt/freescale/usr/local/gcc-4.1.1-glibc-2.4-nptl-sf-1/arm-926ejs-linux/bin/arm-926ejs-linux-gcc

    ./configure—host=ann—linux
      $vi Makefile
      LDFLAGS= -static//指定為靜態編譯

       當然也可以不用靜態編譯,這樣會讓thttpd變得很大,去掉之後,用arm-linux-readelf -d thttpd 命令來讀取這個包中缺少什麼樣的包,卻什麼加什麼……

 5) 現在就可以交叉編譯一下了

        簡單make  之後用arm-926ejs-linux-strip thttpd 去掉調試資訊……

 

  6)修改一下thttpd.conf這個設定檔,具體配置方法:

       # This secti
       on overrides defaults
       #聲明CGI程式的目錄,是以dir為根目錄的路徑
       dir=/opt/dvsdk/dm365/web
       #chroot
       #屏蔽chroot是為了運行動態編譯的CGI
       user=root# default = nobody
       logfile=/var/log/thttpd.log
       pidfile=/var/run/thttpd.pid
       # This section _documents_ defaults in effect
       port=81
       #port參數用於更改連接埠號碼(可不改,若還運行了別的WEB伺服器,則需用不同連接埠)
       # nosymlink# default = !chroot
       #symlinks
       # novhost
       cgipat=/cgi-bin/*
       # nothrottles

 

 

2.第二部是配置CGI的環境,當然就是很簡單了,只要修改一下thttpd.conf這個檔案裡,見上面,上面已經為你配置好了……

 

這個開發環境已經基本配置好了,現在總結一下我在這個過程中犯過的錯誤,有些錯誤糾結了我好久……

回想這個過程,真是……

1)編譯好之後得CGI檔案,必須用chmod a+x XXX.cgi 給它執行的許可權,否則就是亂碼,或者就跳出一個下載的頁面,這個問題錯誤至少多花了我2個小時的時間,鬱悶死了

2) 第二個是編譯CGI檔案需要交叉編譯環境,但是我不知道腦子怎麼短路了,竟然犯如此低級的錯誤,又至少多話了我一個小時間……

3)列印HTML檔案,什麼樣的形式,出現了各種各樣的問題……

4)亂碼問題,是Linux支援UTF-8而PC上面一般用的是GD2312格式,導致這個問題,可以轉化一下……

5)GET方法和POST方法的選擇問題,有一個標準……

6)還有當然就是程式的錯誤了

7)在使用過程中,要學會使用shell指令碼,不然同樣的幾條步驟,在測試的時候需要反覆的輸入,耽誤時間……

8)當然,Makefile檔案編寫也是很重要的,不同的目錄,不同的檔案相互調用,怎麼寫Makefile檔案,讓其出來我們需要的binary檔案呢?也是需要學習的……

 

 

總之,看似簡單的東西,做起來什麼問題都有了,這就是眼高手低……

當然,在調試的過程中,遇到錯誤的時候,要善於分析,有時候不知道怎麼的,腦子不停使喚,一個勁的轉牛角尖,導致白白浪費了大量的時間。

 

經過艱苦的奮鬥,這個禮拜四終於全部搞定了,其他的就是介面的美化,javascript、HTML 和Linux 一些常見的應用程式變成了了,整個架構出來了,什麼都變得那麼的輕鬆……

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.