基于Fedora14 Apache移植

                          基于Fedora14的Appach移植


最近在做Apache PHP 和Sqlite的移植  一开始遇到了很多困难,在网上查了一些资料,
于是记录了下来,综合其他网友的博客以及我自己遇到的问题,整理了这篇博客,希望能帮到你们.借鉴于学长的博客:http://blog.sina.com.cn/s/blog_166ae58120102xecu.html学长的博客真的不错!



   1.准备工作:   下载apache_1.3.39.tar.gz 下载链接 http://download.csdn.net/detail/liangzhuangdongtou/9581434
    (以下目录都是我自己虚拟机上的,可根据自己的情况改变)
    将此包解压缩并拷贝到两个文件夹: /usr/local/local_apache 和 /usr/local/arm_apache
    也可以把压缩包拷贝到指定文件夹后在解压缩
    #tar -zxvf apache_1.3.39.tar.gz
    #cp -r apache_1.3.39 /usr/local/local_apache(用来进行本地编译)
    #cp -r apache_1.3.39 /usr/local/arm_apache(用来进行交叉编译 即用arm-linux-gcc编译)



  一 .本地编译
    1. 配置本地编译的源码:
     # cd /usr/local/local_apache/apache_1.3.39/src 
     # ./Configure   (其中C是大写)执行该命令后会生成一个Makefile文件  
     # cd ..
     #./configure   (c是小写) 执行该命令后同样会生成一个Makefile文件
    2.在正式编译之前,需要先对源码中的三个c文件进行修改
      将下面c文件中的函数名 getline 全部修改为_getline
      #vim local_apache/src/support/htpasswd.c   第101行、第550行
      #vim local_apache/src/support/htdigest.c    第74行、第161行、第219行
      #vim local_apache/src/support/logresolve.c 第74行、第281行、第329行
     目的是避免与库函数的函数名重复导致出错
    3.本地编译生成头文件test_char.h 和 uri_delims.h
      #cd 到local_apache/apache1.3.39
      #make
      在该目录的/src/main 目录下就会生成我们需要的文件test_char.h 和 uri_delims.h



    二.交叉编译
      1. 配置交叉编译的源码
      # cd /usr/loacl/arm_apache/apache_1.3.39
      #CC=arm-linux-gcc  ./configure  --prefix=/usr/local/etc_apache

      注意:也可以 CC=(完整路径)/arm-linux-gcc  --prefix=(已经存在的文件夹,可根据自己情况而定,生成的文件就

      该目录下,如果不指定 默认在/usr/local/apache下 apache是自动创建的)


     2.根据本地编译的第二步 修改以下三个文件
      #vim local_apache/src/support/htpasswd.c   第101行、第550行
      #vim local_apache/src/support/htdigest.c    第74行、第161行、第219行
      #vim local_apache/src/support/logresolve.c 第74行、第281行、第329行


    3. 三次make完成交叉编译
     # cd /usr/loacl/arm_apache/apache_1.3.39

     # make 

     第一次报错 将local_apache/apache_1.3.39/src/main 目录下的 test_char.h复制 arm_apache/apache_1.3.39/src/ma

     目录下

     #cp /usr/loacl/local_apache/apache_1.3.39/src/main/test_char.h    

     /usr/loacl/arm_apache/apache_1.3.39/src/main   

     然后第二次输入 make 命令

     #make 

     第二次报错 将local_apache/apache_1.3.39/src/main 目录下的uri_delims.h复制arm_apache/apache_1.3.39/src/main      目录下

     #cp /usr/loacl/local_apache/apache_1.3.39/src/main/uri_delims.h 

     /usr/loacl/arm_apache/apache_1.3.39/src/main 

     第三次make 
     #make   OK成功! 
   4.安装apache到/usr/local/etc_apache  (即prefix指定的目录)
     执行以下命令安装apache
     #make install



   三 . 精简安装目录(/usr/local/etc_apache)
        个人建议在精简前先复制一份  
        #cp /usr/local/etc_apache  /usr/local/copy_etc_apache
#rm -rf cgi-bin icons include libexec man proxy                         
        #rm -rf htdocs/*                                                    
        #cd bin/                                                          
        #rm ab apxs dbmmanage logresolve apachectl checkgid htdigest rotatelogs    
    #cd ../conf 
    #rm *.default                                                     
    #rm access.conf magic srm.conf 
    #cd ..  
        依次执行如下命令,创建能显示“hello world!”的主页。
        #cat>htdocs/index.html<<EOF                                       
        #hello world!                                                      
        #EOF   
        执行如下命令,减小bin目录下的可执行文件的大小。
        #arm-linux-strip bin/*                                         
        执行如下命令,在apache1.3.39目录下创建passwd子目录,将来用以存储用户密码文件。
        #mkdir passwd
    精简完毕后,我们最终得到的apache1.3.39总大小在700~800 kB左右。

      
    四 . 修改配置文件httpd.conf
    用vim 打开etc_apache/conf目录下的httpd.conf ,做如下修改
   第236行,将Port的值由8080改为8000;
   第251行,将User的值由nogroup改为开发板已经存在的用户;
   第251行,将Group的值由nogroup改为开发板已经存在的组;

   第276行,使能ServerName并将其值改为192.168.1.222:8000,其中192.168.1.222    即为400的IP地址;(ip根据自己虚拟    机的ip设定  需要和虚拟机在同一个网段)  第324行,将Allowoverride的值由None改为All;

   五 . 在开发板上
   修改开发板的ip 
   ipconfig eth0 192.168.1.222 (我自己的)即和配置文件httpd.conf 第276行的ip相   同
   移植交叉编译好的Apache文件夹到arm板的相同位置
   输入如下命令启动apache1.3.39:
   #cd /usr/local/etc_apache/bin                              
   #./httpd -f /usr/local/etc_apache/conf/httpd.conf start 
   (例如,我自己移植后的命令为:./httpd -f   /usr/local/etc_apache/conf/httpd.conf start )
   打开自己桌面PC上的浏览器,在地址栏中输入
   http://192.168.1.222:8000                              
   如果页面左上角出现了“hello world!”,那么我们的apache就已经移植成功了!
   注意:开发板需要连网线


























  

猜你喜欢

转载自blog.csdn.net/fly_sky_share/article/details/78536697