httpd

一、apr 安装

1、解压

tar -xvf apr-1.7.0.tar.bz2

2、编译

./configure CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu --prefix=/usr/local/apr 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_file__dev_zero=yes(注意file和dev之间是两个下划线),则会出现错误:

check for /dev/zero... configure:error:cannot check for file existence when cross compile

②如果不添加ac_cv_func_setpgrp_void=yes,则会出现错误:

checking whether setpgrp takes no argument... configure: error: cannot check setpgrp when cross compiling

③如果不添加apr_cv_process_shared_works、apr_cv_mutex_robust_shared、apr_cv_tcp_nodelay_with_cork则会出现如下错误:

如果不写入第一项,则会出现错误:

checking for working PROCESS_SHARED locks... configure:error: in `.../apr-1.4.6':

configure:error: cannot run test program while cross compiling

See `config.log' for more details

```

​ 如果不写入第二项,则会出现:

checking for robust cross-process mutex support... configure: error: in `.../apr-1.4.6':

configure: error: cannot run test program while cross compiling

See `config.log' for more details

2.1、报错./include/apr_want.h:94:8: error: redefinition of 'struct iovec'

解决:vi include/apr_want.h

在编译的过程中会提示“iovec定义重复”在/apr/include目录。修改apr_want.h文件。将

#ifndef APR_IOVEC_DEFINED

#define APR_IOVEC_DEFINED

struct iovec

{

void *iov_base;

size_t iov_len;

};

#endif /* !APR_IOVEC_DEFINED */

改为

#if 0

struct iovec

{

void *iov_base;

size_t iov_len;

};

#endif /* !APR_IOVEC_DEFINED */

2.2、报错encoding/apr_escape.c:79:33: error: ‘test_char_table’ undeclared

tools/gen_test_char > include/private/apr_escape_test_char.h

/bin/bash: tools/gen_test_char: cannot execute binary file: Exec format error

原因:

因为gen_test_char 使用编译工具编译出来的,但交叉编译出的gen_test_char这个工具在宿主机上无法使用,

所以可以先./configure 再make 将工具保存起来 在执行交叉编译configure,再把工具cp回原位置并修改makefile 执行即解决

3、完整编译流程

1 ./configure

2 Make

3 cp -a tools/gen_test_char ..

4 Make clean

5 ./configure CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu --prefix=/usr/local/apr 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

6 cp -a ../gen_test_char tools/

7 Vi Makefile

134 行

OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

屏蔽

#OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

目的是不生成新的gen_test_char文件

8 vi include/apr_want.h 删除第 92 行 第93 #ifndef APR_IOVEC_DEFINED 替换成#if 0

9 make && make install

二、apr-util安装

先交叉编译libexpat,否则会报如下错误

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

compilation terminated.

make[1]: *** [xml/apr_xml.lo] Error 1

make[1]: Leaving directory `/root/package/apr-util-1.6.1'

make: *** [all-recursive] Error 1

编译过程

tar -xvf expat-2.2.9.tar.xz

cd expat-2.2.9

./configure CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu --prefix=/usr/local/expat

make && make install

1、编译

./configure CC=aarch64-linux-gnu-gcc --host=aarch64-linux-gnu --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat

make && make install

如下成功:

{{uploading-image-817344.png(uploading...)}}

三、httpd安装

注意:在对httpd进行arm交叉编译前,需要进行一次常规编译,执行到 make 后即可,无需执行make install。

原因:因为宿主机上无法运行使用交叉编译链编译的程序的缘故

将常规编译在httpd安装包生成的server文件夹拷出,留作后续使用。

tip:常规编译及交叉编译包不要弄混。

1、解压

tar -xvf httpd-2.4.43.tar.gz

cd httpd-2.4.43

2、编译

./configure --prefix=/usr/local/mawbd --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --host=aarch64-linux-gnu CC=aarch64-linux-gnu-gcc ap_cv_void_ptr_lt_long=no --enable-so --enable-cgi LDFLAGS=-lpthread

make

2.1 错误

①如果不添加ap_cv_void_ptr_lt_long=no选项,则会出现:

configure: error: Size of "void *" is less than size of "long"

②在执行过./configure指令后,进入httpd-2.4.3目录下的server目录中,修改一下其中的Makefile文件,找到如下行:

test_char.h: gen_test_char

./gen_test_char > test_char.h

修改为

test_char.h: gen_test_char

#./gen_test_char > test_char.h

保存后,将常规编译产出的server包导入到该环境的任意位置,切记不要放置在http的下。

然后找到server中的可执行程序gen_test_char,然后执行 ./gen_test_char > test_char.h

接下来make && make install 就不会报错了

如果不做上面任何修改,则会出现以下错误:

./gen_test_char > test_char.h

/bin/sh: ./gen_test_char: cannot execute binary file

至此apache在arm上交叉编译就完成了,可以通过file去检测httpd

arm服务器配置信息,ARM板 web服务器交叉编译及配置相关推荐

  1. arm linux imx6u移植goahead web服务器

    arm linux imx6u移植goahead web服务器 源码下载 源码结构 源码移植 源码下载 1.源码版本goahead2.5 2. 百度云下载链接https://pan.baidu.com ...

  2. 思科web服务器怎么配置文件,思科web服务器域名哪里配置

    思科web服务器域名哪里配置 内容精选 换一换 防护域名开启WEB基础防护之后,访问网站如果出现500,502,504等报错,并且显示Web应用防火墙和网站连接失败,如图1所示.可能的原因比较多,如防 ...

  3. web服务器的构建与配置文件,Web服务器构建与配置.ppt

    文档介绍: Web服务器的构建与配置 黄卢记 嘲氛毋瞬雨犁蔑藕京误泣蒲厕瘁荐罗傅漳惰叮衙腺鹊川焰炙儒太轻毛洽尹Web服务器构建与配置Web服务器构建与配置 一.实训目的 利用Windows Serve ...

  4. 为网站配置web服务器实验报告,配置web服务器实验报告.docx

    文档介绍: 配置web服务器实验报告实验报告专业班级成绩评定_______学号姓名教师签名_______实验题目配置和管理Web服务器实验时间一.实验目的: 1.掌握Web服务器的基本配置方法.2.学 ...

  5. Nginx作为web服务器的安装配置

    Nginx作为web服务器的安装配置 (关注官方网站http://nginx.org/)   Nginx简介 是一个高性能的 HTTP 和 反向代理服务器,由俄罗斯的程序设计师Igor Sysoev所 ...

  6. boa linux arm修改网卡,移植Boa Web服务器到ARM-Linux系统

    本次移植的主要参考资料: 1. <嵌入式Web服务器移植 > 是网上一份Boa移植文档,比较全面.本文档就是基本参照它来写的.基本上上可以说是这篇文章的修改版,增加了我的移植经验.由于这篇 ...

  7. 安全是一个系统问题包括服务器安全,信息安全技术题库:信息泄露对于Web服务器的危害在于( )。...

    相关题目与解析 Web错误信息可能泄露服务器型号版本.数据库型号.路径.代码.() 关于Web应用防火墙,Web服务器防范敏感信息泄露的方式不包括() 在网络中信息安全十分重要,下面与Web服务器安全 ...

  8. centos8 默认nginx路径_CentOS 8系统安装Nginx Web服务器及常见配置过程

    Nginx是一种快速.轻量级的Web服务器,优势是Nginx的配置文件非常简单易用.它是Apache Web服务器的绝佳替代品.在本文中,惠主机将简单介绍如何在CentOS 8上安装Nginx Web ...

  9. web服务器的相关配置

    一:简单介绍web服务 1.什么是www www是world wide web的缩写,也就是全球信息广播的意思.通常说的上网就是使用www来查询用户所需要的信息.www可以结合文字.图形.影像以及声音 ...

最新文章

  1. AI技术在安防市场上的应用主要还存有几个挑战
  2. 设置mysql远程连接root权限
  3. Oracle分区知识
  4. 将C/C++程序的变量数据导入到MATLAB中的方法
  5. java返回特定下标元素_java基础--输出数组中指定元素的下标
  6. ruby 发送post请求_使用Ruby发送电子邮件
  7. All Things Intelligence—Baidu World 2020
  8. 反编译工具reflector破解方法
  9. 用python解析html
  10. bzoj 1003: [ZJOI2006]物流运输
  11. 一名爬虫工程师的运维入门之路:IPy学习笔记
  12. 盘点全球8K视频直播的解决方案和成果
  13. 已通过认证的微信公众号名字可以改吗?
  14. 递推与递归 (区别)
  15. Windows2008使用超级终端--转
  16. Node.js 官网入门教程(二) npm(安装、包版本、卸载、npx)、package.json(scripts、devDependencies)package-lock.json(语义版本规则符号
  17. 脚本下载安装及其使用,Tampermonkey脚本网站使用(Tampermonkey真是宝藏,偷偷看)
  18. Spring IOC(控制反转)的理解
  19. MPU6050姿态融合解算(DMP)
  20. mysql+过滤纯标点符号,用正则表达式去除标点符号

热门文章

  1. 如何使用ggplot2绘制左右分布的柱状图
  2. Nature子刊:细菌和古菌从域到种的完整分类
  3. 中科院微生物所高程组招聘助研3名(正式编制)
  4. 终极大招——怎么在学术会议上有所收获?
  5. 使用ComplexHeatmap包绘制个性化热图
  6. 从实验室走向大众,一文读懂Nanopore测序技术的发展及应用
  7. 扩增子图表解读5火山图:差异OTU的数量及变化规律
  8. R语言ggplot2可视化并自定义配置图例的位置到可视化图像的顶部、配置折叠成两行显示图例、并添加图像形状的子图(ggplot2 legend in two rows with guides fill
  9. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值、标准偏差)实战
  10. win32ctypes.pywin32.pywintypes.error: (2, ‘LoadLibraryEx‘, ‘系统找不到指定的文件。‘)