Apache移植到ARM

原创 2015年07月09日 14:56:19
1. Download the Apache HTTP Server 
   进入http://httpd.apache.org/download.cgi, 下载httpd-2.4.12.tar.gz源码。
   
   Download the Apache Portable Runtime 1.5.2 // 即apr
   进入http://apr.apache.org/, 下载 Apache Portable Runtime 1.5.2 Released
   
   Download the Apache Portable Runtime Utility 1.5.4 // 即apr-util
   进入http://apr.apache.org/, 下载 Apache Portable Runtime Utility 1.5.4 Released
   
   Download PCRE  // Perl Compatible Regular Expressions
   进入http://www.pcre.org/, 下载pcre-8.37.tar.gz
   
   注意:如果要编译httpd-2.4.13必须需要apr、apr-util和pcre的支持。
   在http://httpd.apache.org/docs/2.4/install.html, 中有详细介绍,拷贝如下:
   The following requirements exist for building Apache httpd:
   
   APR and APR-Util
       Make sure you have APR and APR-Util already installed on your system. 
       If you don't, or prefer to not use the system-provided versions, 
       download the latest versions of both APR and APR-Util from Apache APR, 
       unpack them into /httpd_source_tree_root/srclib/apr and 
       /httpd_source_tree_root/srclib/apr-util (be sure the directory names do 
       not have version numbers; for example, the APR distribution must be 
       under /httpd_source_tree_root/srclib/apr/) and use ./configure's 
       --with-included-apr option. On some platforms, you may have to install 
       the corresponding -dev packages to allow httpd to build against your 
       installed copy of APR and APR-Util.
       
   Perl-Compatible Regular Expressions Library (PCRE)
       This library is required but not longer bundled with httpd. Download the 
       source code from http://www.pcre.org, or install a Port or Package. If 
       your build system can't find the pcre-config script installed by the PCRE
       build, point to it using the --with-pcre parameter. On some platforms, 
       you may have to install the corresponding -dev package to allow httpd to
       build against your installed copy of PCRE.


2. 将上述4个源代码放入的的Linux主机任意目录下,分别按如下方式解压
   tar xzvf httpd-2.4.12.tar.gz // 解压httpd-2.4.12到当前目录
   tar xzvf pcre-8.37.tar.gz    // 解压pcre-8.37.tar.gz到当前目录
   tar xzvf apr-1.5.2.tar.gz -C httpd-2.4.12/srclib/
   tar xzvf apr-util-1.5.4.tar.gz -C httpd-2.4.12/srclib/
   将apr和apr-util解压到httpd的srclib目录下,上面有介绍这种使用方法,也可独立
   编译,原理一样,这里不做详细介绍(可参考pcre的编译)。
   
3. cd httpd-2.4.12/srclib/    // 进入srclib目录
   mv apr-1.5.2 apr           // 修改文件夹名称,上述有介绍
   mv apr-util-1.5.4 apr-util // 修改文件夹名称,上述有介绍
   
4. 因为编译过程中会执行某些可执行程序,而我们现在是交叉编译。所以需要先在Linux
   主机进行非交叉编译,将生成的可执行文件暂存到其他目录;当进行交叉编译时,再拷
   贝到相应的目录去执行。
   
   a. pcre
   
   进入pcre-8.37目录,执行mkdir my_install, 创建pcre的安装目录。
   CFLAGS="-g -O2" ./configure --prefix=/home/huyubin/zynq/apache/test/pcre-8.37/my_install/
   其中 “/home/huyubin/zynq/apache/test/”为主机系统的绝对路径。
   
   make
   
   make install
   
   b. httpd
   进入httpd-2.4.12目录
   CFLAGS="-g -O2" LIBS=-L/home/huyubin/zynq/apache/test/pcre-8.37/my_install/lib 
   ./configure --with-included-apr ac_cv_file__dev_zero=yes 
   ac_cv_func_setpgrp_void=yes 
   apr_cv_tcp_nodelay_with_cork=yes ac_cv_sizeof_struct_iovec=8 
   ap_cv_void_ptr_lt_long=4 --with-pcre=../pcre-8.37/my_install
   
   make
   
   c. 在/home/huyubin/zynq/apache/test/目录下新建2个文件夹   
   mkdir pc-httpd
   mkdir pc-apr
   将b过程生成的httpd-2.4.12/server/gen_test_char拷贝到pc-httpd目录下,备用。
   将b过程生成的httpd-2.4.12/srclib/apr/tools/gen_test_char拷贝到pc-apr目录下,备用。
   注意:这2个可执行文件仅名字相同,实际功能是不一样的注意别弄混了。
   cp httpd-2.4.12/server/gen_test_char pc-httpd/
   cp httpd-2.4.12/srclib/apr/tools/gen_test_char pc-apr/
   
   d. 清除在主机的编译安装文件
   
   进入pcre-8.37目录,执行如下命令
   make uninstall
   make distclean
   
   进入httpd-2.4.12目录,执行如下命令
   make distclean   
   
5. 交叉编译pcre
   进入pcre-8.37目录,执行如下命令
   CC=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-gcc 
   CXX=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-g++ 
   CFLAGS="-g -O2" ./configure --prefix=/home/huyubin/zynq/apache/test/pcre-8.37/
   my_install/ --host=arm-xilinx-linux-gnueabi
   其中CC=“你的C交叉编译器” , CXX=“你的C++交叉编译器”,--prefix=“安装路径”,
   --host="交叉编译的目标板系统"
   
   make 
   
   make install
   
6. 交叉编译httpd、apr和apr-util


   新建httpd安装文件夹
   mkdir -p /mnt/ram/apache
   注意此目录最好是和目标板名字相同的路径,因为httpd运行时会使用安装目录。
   
   进入httpd-2.4.12目录,执行如下命令
   CC=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-gcc 
   CXX=/usr/local/arm/arm-xilinx/lin/bin/arm-xilinx-linux-gnueabi-g++ 
   CFLAGS="-g -O2 -lpthread" LIBS=-L/home/huyubin/zynq/apache/test/pcre-8.37/
   my_install/lib ./configure --prefix=/mnt/ram/apache/ --with-included-apr 
   ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes 
   apr_cv_tcp_nodelay_with_cork=yes ac_cv_sizeof_struct_iovec=8 
   ap_cv_void_ptr_lt_long=4 apr_cv_process_shared_works=yes 
   apr_cv_mutex_robust_shared=yes --with-pcre=../pcre-8.37/my_install 
   --host=arm-xilinx-linux-gnueabi cross_compiling=yes --with-mpm=prefork
   
   make  // 提示 tools/gen_test_char > include/private/apr_escape_test_char.h
            /bin/sh: tools/gen_test_char: cannot execute binary file
   cp ../pc-apr/gen_test_char srclib/apr/tools  // 拷贝到apr中
   
   make  // 提示 ./gen_test_char > test_char.h
                 /bin/sh: ./gen_test_char:cannot execute binary file
   cp ../pc-httpd/gen_test_char server/      // 拷贝到httpd中
   make
   sudo make install
   
7. 进入安装目录/mnt/ram/apache,可以看到bin、build、cgi-bin、conf、error、
   htdocs、icons、include、lib、logs、man、manual和moudles
   
   将bin、cgi-bin、conf、error、htdocs、lib、logs、和moudles通过FTP或者其他方式,
   传输到目标板的/mnt/ram/apache/路径下。同样也将主机上pcre-8.37/my_install/lib中
   的所有静态库和动态库上传到目标板的/mnt/ram/apache/lib目录中。
   
   由于apache/lib目录下的库包含软连接,无法将软连接上传到目标板,所以需要在目标板
   上重新建立软连接。
   进入目标板的/mnt/ram/apache/lib, 执行如下脚本或者手动建立软连接。
   #!/bin/sh
   ln -s libapr-1.so.0.5.2 libapr-1.so
   ln -s libapr-1.so.0.5.2 libapr-1.so.0
   ln -s libaprutil-1.so.0.5.4 libaprutil-1.so
   ln -s libaprutil-1.so.0.5.4 libaprutil-1.so.0
   ln -s libexpat.so.0.5.0 libexpat.so
   ln -s libexpat.so.0.5.0 libexpat.so.0
   ln -s libpcrecpp.so.0.0.1 libpcrecpp.so
   ln -s libpcrecpp.so.0.0.1 libpcrecpp.so.0
   ln -s libpcreposix.so.0.0.3 libpcreposix.so
   ln -s libpcreposix.so.0.0.3 libpcreposix.so.0
   ln -s libpcre.so.1.2.5 libpcre.so
   ln -s libpcre.so.1.2.5 libpcre.so.1
   
8. 在目标板上建立daemon组和daemon用户,并将用户daemon加入到daemon组。
   addgroup daemon
   adduser -G daemon daemon
   或者执行如下脚本:
   #!/bin/sh
   addgroup daemon
   (echo "123456"
   sleep 1
   echo "123456")|adduser -G daemon daemon
   
9. 修改目标板上的/mnt/ram/apache/conf/httpd.conf文件
   将 #ServerName www.example.com:80 改为
   ServerName localhost:80
   
10.进入目标板上的/mnt/ram/apache/bin目录
   执行 ./apachectl -k start
   
11.此时可以用ps命令查看httpd进程是否已经启动。


12.打开PC端的浏览器,输入目标板的IP地址。即可显示
    It works!
    
13. 至此apache移植完成。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

移植apache2 ARM版 - 交叉编译apr-1.4.8

1. 下载apr-1.4.8, http://mirrors.hust.edu.cn/apache//apr/apr-1.4.8.tar.gz 2. tar zxvf apr-1.4.8.tar.gz...

移植apache2 ARM版 - 交叉编译apache2

下载apache2 http://apache.fayea.com/apache-mirror//httpd/httpd-2.4.6.tar.bz2 1. tar jxvf httpd-2.4....

移植apache2 ARM版 - 交叉编译apr-util

下在apr-util-1.5.2 http://apache.fayea.com/apache-mirror//apr/apr-util-1.5.2.tar.gz 1. tar zxvf apr...

httpd 服务器在6410开发板上的移植

本文是在房老师提供文档基础上修改而成,耗费了不少心血 --------------------------------------割一个--------------------------------...

移植apache-1.3.39到arm平台

移植apache-1.3.39到arm平台

基于ARM的Apache服务器移植

前言:         本人移植采用的apache版本为1.3.39。编译过程分为两个部分:本机编译和交叉编译。因为交叉编译过程中会用到开始阶段编译的工具,而交叉编译工具无法再PC机上运行,因为需要借...

linux格式化U盘

在单位用U盘安装的archlinux,安装完后,U盘就没再管它,后来女朋友要用U盘,我就甩了一句,在你那windows的机器下格式化一下那个U盘就可以用了,谁知道,就这一句话,好好的2GU盘变300多...

Linux下用命令格式化U盘

1、找到U盘位置(已挂载) sudo fdisk -l 如图,我的在/dev/sdc4 2、格式化U盘 sudo mkfs -t vfat /dev/sdc4-t 后面是格式化为哪...

Linux dd命令制作U盘系统启动盘

Linux dd U盘系统启动盘

升级CentOS6.5安装镜像中的Linux内核版本

前言           因为之前笔者所在公司的一款虚拟化平台产品在数据中心服务器上部署时出现不兼容现象,准确地讲,是安装介质中我们所定制的Linux内核与新服务器硬件不兼容导致,于是就牵涉到升级安装...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)