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即可!
本文出自 “Stephen” 博客