麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 網(wǎng)站 > Apache > 正文

MIPS平臺(tái)移植apache 2.2.7

2024-08-27 18:29:22
字體:
供稿:網(wǎng)友
MipS平臺(tái)移植apache 2.2.7

參考文章:

http://wenku.baidu.com/view/94e08a20a5e9856a561260e2.html

http://httpd.apache.org/docs/2.4/install.html

工作中需要在MIPS平臺(tái)的板子上移植apache,折騰一個(gè)星期,初步搞定,移植過程記錄如下:

開發(fā)機(jī)軟硬件平臺(tái):

開發(fā)板軟硬件平臺(tái):

移植的宏觀思路是:

1.開發(fā)機(jī)端

1)配置:./configure

2)交叉編譯:make

3)安裝:makeinstall

2.開發(fā)板端

1)下載apache安裝目錄到板子的/usr/local下

2)配置httpd.conf

3)驗(yàn)證

詳細(xì)移植過程如下:

1.開發(fā)機(jī)端

1.1配置:./configure

首先指定安裝目錄(PRefix),編譯器(CC),平臺(tái)名(host),庫(kù)的路徑(--with-included-apr)

./configure--prefix=/usr/local/apacheCC=mips64-octeon-linux-gnu-gcc--host=mips-linux--with-included-apr

提示錯(cuò)誤:checkingfor/dev/zero...configure:error:cannotcheckforfileexistencewhencrosscompiling

添加配置選項(xiàng):ac_cv_file__dev_zero=yes

繼續(xù)

./configure--prefix=/usr/local/apacheCC=mips64-octeon-linux-gnu-gcc--host=mips-linux--with-included-aprac_cv_file__dev_zero=yes

提示錯(cuò)誤:checkingwhethersetpgrptakesnoargument...configure:error:cannotchecksetpgrpwhencrosscompiling

添加配置選項(xiàng):ac_cv_func_setpgrp_void=yes

繼續(xù)

./configure--prefix=/usr/local/apacheCC=mips64-octeon-linux-gnu-gcc--host=mips-linux--with-included-aprac_cv_file__dev_zero=yesac_cv_func_setpgrp_void=yes

錯(cuò)誤提示:configure:error:cannotruntestprogramwhilecrosscompiling

進(jìn)入./srclib/apr目錄,修改configure文件,搜索cannotruntestprogramwhilecrosscompiling

一共三處,將下圖中陰影部分注釋掉

繼續(xù)

./configure--prefix=/usr/local/apacheCC=mips64-octeon-linux-gnu-gcc--host=mips-linux--with-included-aprac_cv_file__dev_zero=yesac_cv_func_setpgrp_void=yes

錯(cuò)誤提示:configure:error:Sizeof"void*"islessthansizeof"long"

添加配置參數(shù):ap_cv_void_ptr_lt_long=no

繼續(xù)

./configure--prefix=/usr/local/apacheCC=mips64-octeon-linux-gnu-gcc--host=mips-linux--with-included-aprac_cv_file__dev_zero=yesac_cv_func_setpgrp_void=yesap_cv_void_ptr_lt_long=no

配置通過

1.2交叉編譯:make

執(zhí)行make命令

錯(cuò)誤提示:/bin/sh:tools/gen_test_char:cannotexecutebinaryfile

進(jìn)入./srclib/apr/tools/

MIPS平臺(tái)的可執(zhí)行文件當(dāng)然不能在X86平臺(tái)運(yùn)行,手動(dòng)生成x86平臺(tái)的可執(zhí)行文件,執(zhí)行

gcc-Wall-O2-DCROSS_COMPILEgen_test_char.c-s-ogen_test_char

./gen_test_char>./include/private/apr_escape_test_char.h

修改./srclib/apr/下的Makefile文件,注釋掉圖示兩行

返回繼續(xù)make

錯(cuò)誤提示:./include/apr_want.h:95:error:redefinitionof'structiovec'

修改./srclib/apr/include/apr_want.h,注釋掉structiovec的定義

返回繼續(xù)make

錯(cuò)誤提示:./dftables:./dftables:cannotexecutebinaryfile

進(jìn)入./srclib/pcre/

執(zhí)行

gcc-Wall-O2-DCROSS_COMPILEdftables.c-s-odftables

返回繼續(xù)make

錯(cuò)誤提示:/bin/sh:./gen_test_char:cannotexecutebinaryfile

進(jìn)入./server

執(zhí)行

gcc-Wall-O2-DCROSS_COMPILEgen_test_char.c-s-ogen_test_char

返回繼續(xù)make

錯(cuò)誤提示:undefinedreferenceto`apr_procattr_limit_set'

好吧,這個(gè)錯(cuò)誤網(wǎng)上查了半天,發(fā)現(xiàn)是./configure的時(shí)候少了一個(gè)配置項(xiàng),從頭再來吧

makeclean

終極配置命令:

./configure--prefix=/usr/local/apacheCC=mips64-octeon-linux-gnu-gcc--host=mips-linux--with-included-aprac_cv_file__dev_zero=yesac_cv_func_setpgrp_void=yesap_cv_void_ptr_lt_long=noac_cv_struct_rlimit=yes

make

編譯通過

1.3安裝:makeinstall

理論上接下來的動(dòng)作應(yīng)該是:makeinstall

但是在makeinstall之前,我要臨時(shí)改一下安裝路徑(下面的路徑不固定,可根據(jù)自己的需要修改):

exportDESTDIR=$NPU_APP_DIR/portable/cavium/execute/local/apache_tmp

然后再

makeinstall

下面講一下原因:

apache依賴三個(gè)庫(kù),apr,apr-util,pcre,在httpd-2.2.27版本中,這三個(gè)庫(kù)的源碼均與apache源碼綁定在一起,在srclib目錄下,編譯apache的時(shí)候,這三個(gè)庫(kù)也一起被編譯了

上面./configure時(shí),我之所以要把安裝目錄指定為/usr/local/apache,是因?yàn)槲掖蛩惆補(bǔ)pache的安裝目錄放在板子的/usr/local/apache下,運(yùn)行/usr/local/apache/bin/httpd時(shí),程序會(huì)自動(dòng)在/usr/local/apache下搜尋依賴的庫(kù)文件。

要生成安裝目錄就必須makeinstall,makeinstall是將源碼目錄下的相應(yīng)文件拷貝到安裝目錄下,./configure時(shí)我指定的安裝路徑為/usr/local,但是我在開發(fā)機(jī)上并沒有root權(quán)限,無法寫/usr/local目錄,只能寫我的home目錄(/home/tanghuimin),怎樣臨時(shí)修改makeinstall的安裝路徑呢?

查看Makefile文件,搜索關(guān)鍵字“install”,發(fā)現(xiàn)安裝文件都是放在基于$DESTDIR的路徑下的,那修改$DESTDIR就能修改安裝路徑了,終端下執(zhí)行

exportDESTDIR=$NPU_APP_DIR/portable/cavium/execute/local/apache_tmp

makeinstall

$NPU_APP_DIR/portable/cavium/execute/local/apache_tmp/usr/local/apache下便是自動(dòng)生成的apache安裝目錄了

2開發(fā)板端

2.1下載apache安裝目錄到板子的/usr/local下

將$NPU_APP_DIR/portable/cavium/execute/local/apache_tmp/usr/local/下的apache目錄打個(gè)包,ftp或其他方式,下載到板子的/usr/local/下,解壓,進(jìn)入/usr/local/apache目錄

2.2配置httpd.conf

接下來修改相關(guān)配置文件:

apache無法以root用戶運(yùn)行,修改/etc/passwd和/etc/group文件,新增nobody用戶名和nobody工作組名。

在/etc/passwd中添加一行:

nobody::65534:65533:nobody:/:/bin/sh

在/etc/group中添加:

nobody::65533:

nogroup::65534:nobody

修改/usr/local/apache/conf/httpd.conf文件

1)修改用戶名和用戶組名為nobody

2)修改ServerName為板子的ip地址,我的為192.168.15.29

3)修改監(jiān)聽端口,我的為8080

2.3驗(yàn)證

在瀏覽器窗口輸入網(wǎng)址:http://192.168.15.29:8080/

成功!

后記:曾經(jīng)試過http 2.4.9的移植,但因?yàn)樵?.4.9版本中,三個(gè)庫(kù)(apr,apr-util, pcre)的源碼沒有包含在http源碼中,需要外部安裝,而我又沒有開發(fā)機(jī)的root權(quán)限,導(dǎo)致移植過程中有些動(dòng)作沒有辦法完成,故轉(zhuǎn)向低版本的http 2.2.7,http 2.2.7源碼中包含了三個(gè)庫(kù)文件的源碼,無需外部安裝庫(kù)文件。

附件:

MIPS平臺(tái)移植apache_2_2_7.zip

草稿_MIPS平臺(tái)移植apache_2_4_9.zip


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美人与牲禽动交精品一区 | 91 免费看片 | 91一区二区在线观看 | 欧美18一19sex性护士农村 | 国产精品av久久久久久网址 | 久久久免费观看完整版 | 欧美一级电影网站 | 亚洲第一色婷婷 | 久草在线观看福利视频 | 成年免费视频黄网站在线观看 | 久久成人综合视频 | 欧美精品成人一区二区三区四区 | 97超级碰碰人国产在线观看 | 黑人一区二区三区四区五区 | 欧美成人精品一区二区男人小说 | 日韩视频在线一区二区三区 | 亚洲成人精品久久 | 日韩精品网站在线观看 | 夜夜夜精品视频 | 久久精品国产久精国产 | 日本视频免费观看 | 久久久久久久一区二区三区 | 神马久久蜜桃 | 国产精品久久久免费观看 | 国产91久久久 | 久久综合久久综合久久综合 | 深夜福利视频免费观看 | 久久国产夫妻视频 | 97干在线 | 粉嫩粉嫩一区二区三区在线播放 | 性片久久| 成人性爱视频在线观看 | 国产一国产精品一级毛片 | 99激情 | 深夜免费观看视频 | 久久久久女人精品毛片九一 | 在火车上摸两乳爽的大叫 | 国产精品成人久久 | 一级精品| 99精品视频在线免费观看 | 欧美日韩国产一区二区三区在线观看 |