最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 主配置文件中的 pid 文件路径如何修改避免权限报错
时间:2026-09-03 19:20:47 编辑:袖梨 来源:一聚教程网
在nginx.conf全局块用pid指定绝对路径(如pid /run/nginx.pid),确保父目录存在、属主为root且权限合理,并同步更新systemd的PIDFile配置,经语法检查和重启后即可生效。
直接在 nginx.conf 的全局块(main context)中用 pid 指令指定绝对路径,并同步确保目录存在、属主正确、权限合理,就能避免常见权限报错。
修改 pid 路径的正确写法
打开 /etc/nginx/nginx.conf 或你的主配置文件,在最顶部(events 块之前)添加或修改这一行:
pid /run/nginx.pid;
- 必须是绝对路径,不能写
pid logs/nginx.pid或pid ./nginx.pid - 推荐使用
/run/nginx.pid(systemd 系统默认运行时目录),比/var/run/nginx.pid更规范(二者实际是同一目录的符号链接) - 若需自定义,如多实例部署,可用
pid /run/nginx-api.pid;,但每个实例路径必须唯一
确保目录存在且权限到位
Nginx 主进程以 root 身份启动,但它需要能创建和更新该文件。关键不是文件本身,而是其父目录:
- 执行
mkdir -p /run/nginx(如果用/run/nginx.pid,则父目录是/run;该目录通常已存在且 root 可写) - 若用自定义路径如
/var/run/my-nginx/nginx.pid,需手动创建目录:mkdir -p /var/run/my-nginx - 设置属主:
chown root:root /var/run/my-nginx - 设置权限:
chmod 0755 /var/run/my-nginx(至少保证 root 可写) - 避免放在 NFS、只读挂载点或
/tmp等可能被清理的位置
与 systemd 单元保持一致
如果你用 systemctl start nginx 启动,必须让 systemd 知道新的 pid 路径:
- 编辑
/etc/systemd/system/nginx.service(或发行版对应路径) - 确认
PIDFile=行与nginx.conf中的pid指令完全一致,例如:PIDFile=/run/nginx.pid
- 修改后运行:
systemctl daemon-reload
验证与生效步骤
改完配置别急着重启,按顺序检查:
- 语法测试:
nginx -t—— 必须显示success,否则会启动失败 - 确认目录可写:
ls -ld $(dirname /run/nginx.pid),输出中应有drwxr-xr-x且属主为root - 停掉旧进程(如有):
nginx -s stop或systemctl stop nginx - 启动:
nginx或systemctl start nginx - 验证 pid 文件是否生成:
cat /run/nginx.pid并比对ps aux | grep 'nginx: master'输出的 PID 是否一致
相关文章
- 我的勇者好不好玩 无厘头像素风的弹幕RPG手游 09-03
- TPLink TLWDR8620 52 无线路由器控制上网时间设置教程 09-03
- 我的勇者战士魂卡搭配推荐 如何搭配成长最快 09-03
- 2026年值得推荐的视频剪辑软件有哪些?高效易用的剪辑工具盘点 09-03
- SpringAOP的一个使用例子 09-03
- 我的勇者恶魔族魂卡 恶魔族魂卡效果说明 09-03