源码安装 nginx 时通过 ./configure 的 --prefix 参数指定自定义安装路径,如 --prefix=/opt/nginx,从而固化 conf、sbin、logs、html 等子目录位置;可选叠加 --conf-path、--sbin-path 等参数覆盖默认路径;安装后需配置运行用户及权限并验证路径与权限生效。

源码安装 Nginx 时指定自定义安装路径,核心是通过 ./configure 的 --prefix 参数完成的。它不是简单“把文件复制到某处”,而是从编译阶段就固化整个目录结构的根位置,后续所有子路径(conf、sbin、logs、html)都默认基于它生成。
一、用 --prefix 明确指定根安装目录
这是最关键的一步。不加该参数,Nginx 默认装到 /usr/local/nginx;生产环境通常需要统一规划,比如装到 /opt/nginx 或按版本隔离如 /usr/local/nginx-1.24.0。
- 进入解压后的 Nginx 源码目录(如
/tmp/nginx-1.24.0) - 执行:
./configure --prefix=/opt/nginx - 该命令会生成 Makefile,并将以下路径自动设为:
- 主配置文件:/opt/nginx/conf/nginx.conf
- 可执行文件:/opt/nginx/sbin/nginx
- 日志目录:/opt/nginx/logs/
- 静态页根目录:/opt/nginx/html/
- 确保目标目录存在且当前用户有写权限,例如:
sudo mkdir -p /opt/nginx && sudo chown $USER:$USER /opt/nginx
二、必要时叠加其他路径参数(可选但常用)
如果某些路径不想严格遵循 --prefix 下的默认结构,可用独立参数覆盖,但要注意:一旦显式指定,Nginx 启动时只认这个路径,不再回退到 prefix 下的对应子目录。
-
--conf-path=/etc/nginx/nginx.conf:把配置文件放系统级目录,便于集中管理 -
--sbin-path=/usr/sbin/nginx:让 nginx 命令可被全局调用(需配合 PATH 或软链接) -
--pid-path=/var/run/nginx.pid和--error-log-path=/var/log/nginx/error.log:适配 Linux 标准日志与进程路径规范 - 所有显式路径必须提前创建好目录,并赋予运行用户读写权限
三、编译安装并验证路径是否生效
执行完 configure 后,继续标准流程,再确认实际部署结果是否符合预期。
- 运行:
make && sudo make install - 检查安装目录:
ls -l /opt/nginx,应看到 sbin/、conf/、logs/、html/ 等子目录 - 验证配置路径:
/opt/nginx/sbin/nginx -t,输出中会显示 “configuration file” 对应的实际路径 - 查看完整编译信息:
/opt/nginx/sbin/nginx -V,其中configure arguments:行明确列出所有传入的路径参数
四、配套设置运行用户与权限
路径定了,还得让 Nginx 以合适身份运行,避免权限问题导致启动失败或日志写入异常。
- 创建专用用户(无登录权限):
sudo useradd -r -s /sbin/nologin nginx - 在
/opt/nginx/conf/nginx.conf首行添加:user nginx;(若未指定 group,默认使用同名组) - 确保该用户对 logs/ 目录有写权限:
sudo chown -R nginx:nginx /opt/nginx/logs - 启动前检查:
sudo -u nginx /opt/nginx/sbin/nginx -t,能通过即说明权限配置到位











