轉載自http://blog.csdn.net/liangzhuangdongtou/article/details/51942595
平臺:Fedora14 i386
arm210
arm-linux-gcc-4.3.2
寫在開頭:本篇博客中所用到的一些工具和源碼包,都可以在我的另一篇博文“軟件開發人員常用網站整理”中找到下載網站
準備工作:
下載 apache_1.3.39.tar.gz
解壓縮apache_1.3.39.tar.gz到兩個文件夾(/share/進行本地編譯和/mnt/yaffs/進行交叉編譯)
#tar xzvf apache_1.3.39.tar.gz -C /share/
#tar xzvf apache_1.3.39.tar.gz -C /mnt/yaffs/
1. 配置本地編譯的源碼
#cd /share/apache_1.3.39/src (進入的是src文件夾)
#./Configure (其中的C爲大寫)
#cd ..
#./configure
2.在正式開始編譯之前,先使用vim對本地源碼中的3個C文件進行修改。
/share/apache_1.3.39/src/support/htpasswd.c 第101行、第550行
/share/apache_1.3.39/src/support/htdigest.c 第74行、第161行、第219行
/share/apache_1.3.39/src/support/logresolve.c 第74行、第281行、第329行
將上述位置的函數名getline全部修改爲 _getline。
3.本地編譯生成頭文件test_char.h 和 uri_delims.h
#cd /share/ apache_1.3.39
#make
在/share/apache_1.3.39/src/main目錄下就會生成我們需要的文件test_char.h 和 uri_delims.h
4. 配置交叉編譯的源碼
#CC=arm-Linux-gcc ./configure --prefix=/mnt/yaffs/apache/ (/mnt/yaffs/apache/這個路徑需要提前創建,用來存放最後需要移到開發板上的東西)
修改交叉編譯的源碼
按照第2步給出的方法,修改以下3個C文件:
/mnt/yaffs/apache_1.3.39/src/support/htpasswd.c
/mnt/yaffs/apache_1.3.39/src/support/htdigest.c
/mnt/yaffs/apache_1.3.39/src/support/logresolve.c
5. 三次make完成交叉編譯
#cd /mnt/yaffs/apache_1.3.39
#make
第一次報錯:將/share/apache_1.3.39/src/main目錄下的test_char.h複製到/mnt/yaffs/apache_1.3.39/src/main目錄下,使用的命令如下:
#cp /share/apache_1.3.39/src/main/test_char.h /mnt/yaffs/apache_1.3.39/src/main
然後第2次輸入make命令
#make
第二次報錯:將/share/apache_1.3.39/src/main目錄下的uri_delims.h複製到/mnt/yaffs/apache_1.3.39/src/main目錄下,使用的命令如下:
#cp /share/apache_1.3.39_host/src/main/uri_delims.h /mnt/yaffs/apache_1.3.39/src/main
最後第3次輸入make命令
#make
第3次make編譯成功
6. 安裝Apache到/mnt/yaffs/apache
執行如下命令安裝Apache:
#make install
7.進入/mnt/yaffs/apache/文件夾下,依次執行如下命令,創建能顯示“hello world!”的主頁。
#cd /mnt/yaffs/apache/
#cat>htdocs/index.html<<EOF
#hello world!
#EOF
8. 修改配置文件httpd.conf
使用vim打開/mnt/yaffs/apache/conf目錄下的httpd.conf,做如下修改。
第236行,將Port的值由8080改爲8000;
第251行,將User和Group的值由nobody改爲deamon;
第276行,使能ServerName並將其值改爲192.168.99.187:8000,其中192.168.99.187即爲210開發板的IP地址;
第324行,將Allowoverride的值由None改爲All;
9.運行新移植的apache
移植交叉編譯好的apache文件夾到arm板的相同位置
輸入如下命令啓動apache:
#cd apache/bin
#./httpd -f /mnt/yaffs/apache/conf/httpd.conf start (該路徑是自己設定的,但要與之前步驟中的路徑相一致)
打開自己桌面PC上的瀏覽器,在地址欄中輸入
http://192.168.99.187:8000
如果頁面左上角出現了“hello world!”,那麼我們的apache就已經移植成功了!