Apache源码安装缺失依赖的本质是编译器找不到头文件或库文件,解决核心是装对开发包、按序编译(APR→APR-util→PCRE→OpenSSL)、显式指定路径;优先用系统包管理器安装对应-dev/devel包可解决90%问题。

先装系统级开发依赖(最省事)
90% 的报错靠这一步就能解决,别急着自己编译 APR 或 PCRE。
-
Ubuntu/Debian:运行
sudo apt update && sudo apt install build-essential libssl-dev libapr1-dev libaprutil1-dev libpcre3-dev zlib1g-dev libxml2-dev expat-dev -
CentOS/RHEL 7+:运行
sudo yum groupinstall "Development Tools" && sudo yum install openssl-devel apr-devel apr-util-devel pcre-devel zlib-devel libxml2-devel expat-devel -
Rocky/AlmaLinux 8+ 或 RHEL 8+:用
dnf替换yum,其余相同
装完直接进 httpd 源码目录执行 ./configure --prefix=/usr/local/apache --enable-so --enable-ssl,大多数情况下不再报 APR/PCRE/SSL 找不到。
APR 和 APR-util 必须手动编译的情况
当系统自带 APR 版本太低(如 CentOS 7 默认 apr-1.4.x,而 httpd-2.4.62 要求 ≥1.5.0),就得自己编译新版,并严格按顺序来:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 先编译 APR:
./configure --prefix=/usr/local/apr && make && sudo make install - 再编译 APR-util:
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && sudo make install(必须带--with-apr) - 若 configure 报
expat.h not found或链接出错undefined reference to XML_Parse,说明缺 XML 支持,补装libxml2-devel(CentOS)或libxml2-dev(Ubuntu),然后make clean重装 APR-util
PCRE 和 OpenSSL 的处理逻辑不同
PCRE 常见于 URL 重写功能启用时;OpenSSL 则关系到 HTTPS 是否可用。两者都支持系统包 + 显式路径双模式:
-
PCRE:装了
libpcre3-dev或pcre-devel通常够用;若版本旧(如系统只有 PCRE 8.30,而 httpd 要求 ≥8.32),就源码装新版:./configure --prefix=/usr/local/pcre && make && sudo make install,Apache configure 加--with-pcre=/usr/local/pcre -
OpenSSL:仅装
openssl命令行工具没用,必须装libssl-dev或openssl-devel;若用自编译 OpenSSL(如装在/usr/local/ssl),configure 要写全:--with-ssl=/usr/local/ssl LDFLAGS="-L/usr/local/ssl/lib" CPPFLAGS="-I/usr/local/ssl/include"
装完后仍报“not found”?检查动态库加载
configure 成功 ≠ 运行时能加载。启动失败时先查缺啥库:
- 运行
ldd /usr/local/apache/bin/httpd | grep "not found",看具体缺libapr-1.so.0还是libpcre.so.1 - 如果库已装但路径不在系统搜索范围,把对应
lib目录加进动态链接配置:echo '/usr/local/apr/lib' > /etc/ld.so.conf.d/apr.conf && sudo ldconfig
同理为 apr-util、pcre、openssl 添加对应路径 - 临时测试可用:
export LD_LIBRARY_PATH=/usr/local/apr/lib:/usr/local/apr-util/lib:/usr/local/pcre/lib:$LD_LIBRARY_PATH

















