OS:     centOS 5.8

 Software:Apache 2.2.22

编译参数:

./configure --prefix=/usr/local/apache \

--enable-so --enable-rewrite \

 --enable-mods-shared=most \

--with-include-apr

 

编译安装Apache2.2.22 make时所报错误如下:

 modules/http/.libs/libmod_http.a(byterange_filter.o): In function `ap_set_byterange':

byterange_filter.c:(.text+0x12c1): undefined reference to `apr_array_clear'

collect2: ld returned 1 exit status

make[1]: *** [httpd] Error 1

make[1]: Leaving directory `/root/works/httpd-2.2.22'

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

错误分析:经过排查,倒不是因为我没有安装apr和apr-util这两个软件包所致,而是我操作系统自动安装了这两个软件才导致的错误;可能是因为系统自带的apr、apr-util版本较低。
 
解决:Apache2.2.22修复了不少重要安全问题,源码包包含APR(Apache Portable Runtime)1.4.5和APR-util(Apache Utility Library)1.4.2 ,(PS:源码包内srclib里有apr和apr-util两个目录),将安装前已存在于系统中的apr去除后,重新编译apache2.2.22即可!