arm apache php交叉编译

设置交叉编译路径
CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-gcc
CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-g++

1、zlib http://www.zlib.net/zlib-1.2.11.tar.gz
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc ./configure --prefix=/usr/local/zlib

2、php 的依赖 iconv
sudo wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ ./configure --prefix=/usr/local/libiconv --host=arm-linux

则需要对./srclib/getprogname.c做如下修改:

将原来的:

 getprogname (void)
 {
 # if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME                /* glibc, BeOS */
...
}

改为:

getprogname (void)
 {
 # if ARM
      char strProcessPath[1024] = {0};
      if(readlink("/proc/self/exe", strProcessPath,1024) <=0)
      {
          return NULL;
      }
      char *strProcessName = strrchr(strProcessPath, '/');  
      if(strProcessName)
      {
          size_t nameLen = strlen(strProcessName);
          char* namecopy = malloc(nameLen + 1);
          if (namecopy)
          {
              namecopy[nameLen] = 0;
              return memcpy(namecopy, strProcessName, nameLen);
          }
      }
  
      return NULL;
 # elif HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME                /* glibc, BeOS */
...
}

另在该文件中添加:

 #define ARM 1

3、php 的依赖 libxml2
sudo wget ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/libxml2 --host=arm-linux --with-zlib=/usr/local/zlib --without-python
sudo make
sudo make install

4、apache 的依赖 apr
sudo wget http://archive.apache.org/dist/apr/apr-1.4.8.tar.gz

#将configure文件中的 R M &quot; RM &quot; RM"cfgfile"这行代码注释掉就可以了
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ ./configure --prefix=/usr/local/apr --host=arm-linux ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes apr_cv_tcp_nodelay_with_cork=yes ap_void_ptr_lt_long=no ac_cv_sizeof_struct_iovec=8
sudo make
sudo make install

5、apache 的依赖 apr-util
sudo wget http://archive.apache.org/dist/apr/apr-util-1.4.1.tar.gz

sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ ./configure --prefix=/usr/local/apr-util --host=arm-linux --with-apr=/usr/local/apr
sudo make
sudo make install

6、apache 的依赖 pcre

sudo ./configure --prefix=/usr/local/build-source/pce

sudo wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.43.tar.gz
sudo tar -xvf pcre-8.43.tar.gz
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ ./configure --prefix=/usr/local/pcre --host=arm-linux

7、apache http://archive.apache.org/dist/httpd/httpd-2.4.39.tar.gz

本机编译
./configure --with-included-apr --with-included-apr-util --with-pcre=/usr/local/build-source/pce

在执行过./configure指令后,在为开发板编译httpd执行make命令前,需要先对宿主机上编译过一次httpd(即至少执行到make,make install可不执行,宿主机上不最终安装apache2也是可以的),然后到为开发板编译httpd的httpd-2.4.3目录下的server目录中,修改一下其中的Makefile文件,找到如下行:
./gen_test_char > test_char.h 修改为 /usr/local/httpd-2.4.39-pc/server/gen_test_char > test_char.h

sudo CC_FOR_BUILD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld LDFLAGS=-lpthread ./configure --prefix=/usr/local/apache --host=arm-linux --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util ap_cv_void_ptr_lt_long=no

8、php https://www.php.net/distributions/php-5.5.38.tar.gz

sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/php --host=arm-linux --disable-ipv6 --disable-cli --disable-cgi --disable-all --enable-sockets --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --with-iconv-dir=/usr/local/libiconv --with-apxs2=/usr/local/apache/bin/apxs

低版本

zlib http://www.zlib.net/zlib-1.2.11.tar.gz
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc ./configure --prefix=/usr/local/zlib

http://archive.apache.org/dist/httpd/httpd-2.2.21.tar.gz
编译PC版本apache
./configure --prefix=/usr/local/build-source/httpd-2.2.21-pc ap_cv_void_ptr_lt_long=no

编译apache 参考https://www.cnblogs.com/tanghuimin0713/p/3749817.html
修改/usr/local/build-source/httpd-2.2.21/server/Makefile.in
./gen_test_char > test_char.h 为 /usr/local/build-source/httpd-2.2.21-pc/server/gen_test_char > test_char.h

configure错误
vi srclib/apr/configure
注释

#  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
#as_fn_error $? "cannot run test program while cross compiling
#See \`config.log' for more details" "$LINENO" 5; }
#else

sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/apache --host=arm-linux --disable-cgi --enable-rewrite --enable-so --enable-modules=all --enable-mods-shared=all --with-z=/usr/local/zlib 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=no ac_cv_struct_rlimit=yes LDFLAGS=-lpthread

httpd 2.xx可能出现的make错误
Makefile:141: recipe for target ‘include/private/apr_escape_test_char.h’ failed

cd srclib/apr/include/private
sudo cp /usr/local/build-source/httpd-2.2.21-pc/srclib/apr/include/private/apr_escape_test_char.h .
注释/usr/local/build-source/httpd-2.2.21/srclib/apr/Makefile

#include/private/apr_escape_test_char.h: tools/gen_test_char
#       $(APR_MKDIR) include/private
#       tools/gen_test_char > $@

Makefile:23: recipe for target ‘/usr/local/build-source/httpd-2.2.21/srclib/pcre/chartables.c’ failed
cd srclib/pcre/
sudo gcc -Wall -O2 -DCROSS_COMPILE dftables.c -s -o dftables

libxml2
ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz
sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/libxml2 --host=arm-linux --with-zlib=/usr/local/zlib --without-python

编译php
https://www.php.net/distributions/php-5.5.38.tar.gz

sudo CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-g++ LD=/usr/local/arm_linux_4.3/usr/bin/arm-linux-uclibcgnueabi-ld ./configure --prefix=/usr/local/php --host=arm-linux --disable-ipv6 --disable-cli --disable-cgi --disable-all --enable-sockets --with-libxml-dir=/usr/local/libxml2 --with-zlib-dir=/usr/local/zlib --with-iconv-dir=/usr/local/libiconv --with-apxs2=/usr/local/apache/bin/apxs --cache-file=arm-linux.cache

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值