转载自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就已经移植成功了!