天天看點

Linux 系統boa伺服器搭建後續,LD_LIBRARY_PATH環境變量配置

前些天在開發闆上搭建了boa伺服器,能夠顯示靜态網頁,背景cgi程式想用C/C++編寫,在ubuntu上編寫一個簡單的符合協定的C檔案,内容為在網頁上顯示hello word,用ubuntu的終端arm-linux-gcc 編譯C檔案,編譯後生成的可執行檔案放到開發闆boa伺服器的cgi-bin目錄下,在網頁上打開該檔案成功。到這裡以為boa伺服器的搭建已經完成,實際上還隐藏了一個十分大的隐患。

簡單的C程式可以直接arm-linux-gcc編譯,但是為了實作某些功能需要使用QT庫,用QT寫了程式,編譯後重命名為a.cgi放到cgi-bin下發現沒辦法在浏覽器中打開,顯示502,在執行了 chmod 777 a.cgi後依然無法打開,而在開發闆上用超級終端執行./a.cgi卻可以正确運作該程式。打開boa伺服器log檔案檢視錯誤原因(boa.conf裡定義了路徑log檔案的路徑),發現是程式找不到運作庫,可是開發闆的環境變量都是已經配置好的,除非boa伺服器需要單獨配置環境變量;

boa伺服器從官網下載下傳到解壓、交叉編譯、移植的過程中需要配置的隻有boa.conf檔案,但是該檔案中也沒有配置環境變量的相關内容,真是讓人摸不着頭腦。最後鎖定boa的源碼,在cgi.c檔案中的complete_env函數中添加一句:my_add_cgi_env(req, “LD_LIBRARY_PATH”, “/lib”); 其中的/lib就是環境變量,還可以根據自己的情況多加幾個,比如my_add_cgi_env(req, “LD_LIBRARY_PATH”, “/lib:/usr/lib: /usr/local/tslib/lib”); 需要注意的是,如果加入的環境變量太多可能需要修改defines.h檔案中的CGI_ENV_MAX大小。重新交叉編譯生成boa可執行檔案,放到開發闆中,試一下可以運作QT程式了。

繼續閱讀