apache 2.4+ 必须单独编译安装 apr 和 apr-util:先执行 ./configure --prefix=/usr/local/apr && make && make install,再执行 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install,最后 apache 配置中显式指定 --with-apr 和 --with-apr-util 路径,并补充 expat-devel、libxml2-devel 等系统依赖。
apache 2.4+ 不再自带 apr 和 apr-util,必须单独编译安装,并在配置 apache 时显式指定路径。跳过或用系统包管理器(如 yum/apt)安装旧版 apr 往往失败,核心是版本不匹配和路径未正确传递。
先装 APR,再装 APR-util,顺序不能错
APR 是基础运行时库,APR-util 依赖它。两者都需源码编译,推荐使用 1.6.x 或 1.7.x 系列(与 Apache 2.4 兼容性好):
- 下载 apr-1.7.0.tar.gz,解压后进入目录:
./configure --prefix=/usr/local/apr && make && make install - 下载 apr-util-1.6.1.tar.gz,解压后进入目录:
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
常见报错及对应处理
编译过程出错,基本围绕底层依赖缺失或路径写错:
- “APR not found” 或 configure 失败:确认 /usr/local/apr/bin/apr-1-config 存在;Apache 的 configure 中用 --with-apr=/usr/local/apr(不是 bin 目录)
- “expat.h: No such file or directory”:缺 XML 解析头文件,运行 yum install -y expat-devel(CentOS/RHEL)或 apt install libexpat1-dev(Ubuntu/Debian)
- undefined reference to `XML_Parse`:说明 APR-util 编译时没链接到 XML 库。先装 libxml2-devel,再彻底删掉已装的 APR-util(rm -rf /usr/local/apr-util),进源码目录执行 make clean,重做 configure → make → install
Apache configure 必须带全路径参数
装完 APR 和 APR-util 后,Apache 的 configure 命令不能省略关键选项:
- --with-apr=/usr/local/apr
- --with-apr-util=/usr/local/apr-util
- 如果还报 PCRE 错误,同样需源码安装 pcre(如 pcre-8.45),并加 --with-pcre=/usr/local/pcre
完整示例:
./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre











