make install 是源码编译安装 Nginx 的最后一步,仅负责按 configure 指定路径部署已编译的二进制文件、配置模板及目录结构,不参与编译;执行前须成功运行 ./configure 和 make,并通常需 sudo 权限写入系统目录。

执行 make install 是源码编译安装 Nginx 的最后一步,它不负责编译,只负责将已编译好的二进制文件、配置模板、日志目录结构等,按 ./configure 阶段指定的路径部署到目标系统中。
make install 前必须完成的准备
该命令本身不生成可执行文件,它依赖前面两个步骤的结果:
-
已成功运行
./configure:检测系统环境、解析参数、生成Makefile和objs/目录下的中间文件(如ngx_auto_config.h) -
已成功运行
make:根据Makefile编译出objs/nginx这个主程序,以及模块对象文件
执行 make install 的典型方式
在 Nginx 源码根目录下直接运行:
sudo make install
注意:make 可以普通用户执行,但 make install 需要写入权限(比如创建 /usr/local/nginx 或 /opt/nginx),所以通常加 sudo。如果你用 --prefix=/home/yourname/nginx 指定了用户目录,也可不用 sudo。
make install 实际做了什么
它会按 ./configure 中的参数,完成以下操作:
- 创建安装目录结构(
conf、sbin、html、logs等子目录) - 复制编译好的
objs/nginx到--sbin-path(默认是PREFIX/sbin/nginx) - 复制默认配置文件
conf/nginx.conf到--conf-path - 复制 MIME 类型文件
conf/mime.types和其他基础配置模板 - 创建日志路径(如
--error-log-path对应的目录,但不自动创建父级,需确保路径可写)
常见问题与注意事项
如果执行失败,优先检查这几项:
-
权限不足:目标安装路径(尤其是
/usr/local或/opt下)没有写入权限 -
路径冲突:指定的
--prefix已存在且非空,一般不影响,但旧配置可能被覆盖 -
configure 参数遗漏:例如未指定
--user或--group,不会报错,但后续启动时可能因权限问题无法绑定端口或写日志 -
未清理旧构建:若反复修改 configure 参数后重跑
make install,建议先make clean再重新configure && make


















