离线内网安装apache源码的关键是提前在同版本同架构联网机下载httpd及其全部依赖rpm/deb包(含-devel/dev开发包),内网用rpm -uvh --force --nodeps或dpkg -i --force-all批量安装,再验证/usr/include和/usr/lib64下头文件与库文件存在即可直接configure编译,无需手动编译apr等依赖。

离线内网环境安装 Apache 源码,关键不是“找不到软件”,而是“找不到开发头文件和链接库”。系统没有网络,不能 yum install 或 apt install,但只要提前在同版本、同架构的联网机器上把**全部依赖包及其开发包(devel/dev)完整打包**,就能在内网一次性装完,不中断、不报错。
一、外网机准备:下载 httpd + 全量依赖 RPM/DEB 包
必须用与目标内网服务器**完全一致的发行版、版本号和 CPU 架构**(如麒麟 V10 SP1 aarch64 / UOS 2023 x86_64)执行以下操作:
-
RHEL/CentOS/Rocky/AlmaLinux/麒麟(dnf/yum 系):
dnf download httpd --resolve --downloaddir=/tmp/httpd-offline
此命令自动拉取 httpd 本体 + 所有运行时依赖 + 对应的-devel包(如apr-devel、pcre-devel、openssl-devel、expat-devel、zlib-devel等) -
Debian/Ubuntu/统信UOS(apt 系):
apt-get download $(apt-rdepends apache2 | grep -v "^ " | xargs)
再单独补:apt-get download libapr1-dev libaprutil1-dev libpcre3-dev libssl-dev libxml2-dev zlib1g-dev expat-dev
二、内网机安装:强制批量安装,跳过签名与依赖检查
将外网机生成的所有 .rpm 或 .deb 文件拷贝到内网服务器(如 /opt/offline-httpd/),然后执行:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
RPM 系(含麒麟、UOS):
cd /opt/offline-httpd && rpm -Uvh --force --nodeps *.rpm
注意:--nodeps是必须的,因部分包间存在循环依赖;--force覆盖已存在但版本旧的包(如系统自带低版本 apr) -
DEB 系(UOS/Ubuntu):
dpkg -i --force-all *.deb
若提示依赖未满足,再运行:apt-get install -f(此时 apt 会从本地缓存解析,无需联网)
三、验证开发包是否真正就位
装完后别急着编译 httpd,先确认关键头文件和库路径是否存在:
- 检查 APR:
ls /usr/include/apr-1/apr.h && ls /usr/lib64/libapr-1.so - 检查 PCRE:
ls /usr/include/pcre.h && ls /usr/lib64/libpcre.so - 检查 OpenSSL:
ls /usr/include/openssl/ssl.h && ls /usr/lib64/libssl.so - 若任一缺失,说明对应
-devel包没装上,回退第一步重新下载该包并重装
四、源码编译:用系统包,不手动编译 APR/PCRE
只要上面三步到位,httpd 源码 configure 就能自动发现所有依赖,无需自己编译 APR、APR-util 或 PCRE:
- 进入 httpd 源码目录:
cd httpd-2.4.66 - 直接运行:
./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-rewrite - 如果仍报
APR not found,加显式路径(多数情况不需要):./configure --prefix=/usr/local/apache --with-apr=/usr --with-apr-util=/usr --with-pcre=/usr --with-ssl=/usr - 后续执行:
make -j$(nproc) && make install










