makefile 由 ./configure 自动生成,用于指导 make 编译和 make install 安装;需先成功执行 ./configure(依赖 gcc、apr、pcre 等),再 make 编译(可并行),最后 make install 复制文件到 --prefix 目录。

Apache 源码安装中,Makefile 不是脚本,而是由 ./configure 自动生成的构建规则文件;真正完成编译与安装的是 make 和 make install 这两个命令,它们依据 Makefile 中定义的依赖关系和指令执行操作。
Makefile 是怎么来的
它不是手动编写或预置的脚本,而是运行 ./configure 后生成的。该脚本检测系统环境(如编译器、依赖库路径、启用模块等),把用户配置(如 --prefix、--enable-so)转化为具体的编译参数,并写入 Makefile。没有成功执行 ./configure,就没有合法的 Makefile,后续命令会失败。
用 make 完成编译
进入解压后的源码目录(如 httpd-2.4.46),执行:
-
make:单线程编译,稳定但慢 -
make -j4:用 4 个进程并行编译(适合 4 核 CPU) -
make -j$(nproc):自动按逻辑 CPU 数量并行,推荐通用写法
编译过程会将 C 源码(/*.c)逐个编译为 .o 目标文件,再链接成 httpd 主程序和各类模块(如 mod_ssl.so)。完成后,可检查:ls -l httpd/httpd(新版结构)或 ls -l support/httpd(旧版)./httpd/httpd -v 能正常输出版本号,说明编译成功。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
用 make install 完成安装
这一步不参与编译,只负责复制文件:
- 把编译好的
httpd可执行文件、模块、配置模板、文档等,拷贝到--prefix指定的目录(如/usr/local/apache2) - 创建标准子目录结构:
bin/、conf/、modules/、logs/、htdocs/ - 不会覆盖已有配置,但会覆盖同名默认配置文件(如
httpd.conf)
必须在 make 成功后执行,否则报错“no rule to make target 'install'”。常见组合写法:make && make install(前一个失败,后一个不执行)
关键前提和常见卡点
这些不是 Makefile 的问题,而是 make 执行前必须满足的条件:
- 已安装基础编译工具:
gcc、gcc-c++、make - 已提前编译安装
apr和apr-util(Apache 2.4+ 强制依赖),并用--with-apr显式指定路径 - PCRE 库必须可用:
pcre-config --version能返回结果,否则 configure 阶段就过不去 - 确保
./configure返回状态为 0(执行完立刻运行echo $?验证)
Makefile 本身不可直接运行,也不需要修改。它的作用就是让 make 知道“先编什么、再连什么、最后放哪儿”。整个流程本质是:配置 → 编译 → 安装,三步缺一不可。










