You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Docker在Nginx上部署DVWA遇php-fpm.sock权限拒绝问题求助

Docker部署Nginx+DVWA及权限问题排查

已执行操作步骤

  • 安装Docker(根据系统选择对应命令,如Debian/Ubuntu:apt install docker.io;CentOS:yum install docker)
  • 拉取Nginx镜像:docker pull nginx:latest
  • 启动容器并绑定端口:docker run -d -p 8000:80 --name nginx-dvwa nginx,本地访问http://localhost:8000确认Nginx正常运行
  • 进入容器终端:docker exec -it nginx-dvwa /bin/bash
  • 克隆DVWA到Nginx网页根目录:git clone https://github.com/digininja/DVWA.git /usr/share/nginx/html/DVWA
  • 编辑Nginx默认配置文件:vi /etc/nginx/conf.d/default.conf,配置PHP解析规则
  • 确认PHP版本兼容:DVWA要求PHP 7.4+,已验证容器内PHP版本符合要求

当前遇到的问题

  • 前期日志提示/run/php/php8.2-fpm.sock不存在,已通过安装PHP-FPM解决该问题
  • 现日志持续报错:/run/php/php8.2-fpm.sock权限拒绝,已手动检查文件权限但问题未解决

可行排查/修复方案

  1. 调整PHP-FPM sock文件权限配置

    • 查看当前sock文件权限:ls -l /run/php/php8.2-fpm.sock
    • 编辑PHP-FPM池配置文件:vi /etc/php/8.2/fpm/pool.d/www.conf,设置:
      listen.owner = www-data
      listen.group = www-data
      listen.mode = 0660
      
    • 重启PHP-FPM服务:service php8.2-fpm restart
  2. 验证Nginx运行用户权限

    • 查看Nginx运行用户:grep user /etc/nginx/nginx.conf,默认应为www-data
    • 确保该用户属于PHP-FPM sock文件的用户组,若未加入可执行:usermod -aG www-data nginx(若Nginx用户不是www-data)
  3. 临时测试权限(仅用于定位问题)

    • 执行chmod 777 /run/php/php8.2-fpm.sock,若访问正常,说明是权限配置问题,后续再调整为安全权限(如chmod 660)
  4. 切换为TCP端口连接PHP-FPM

    • 修改PHP-FPM配置,将listen = /run/php/php8.2-fpm.sock改为listen = 127.0.0.1:9000,重启PHP-FPM
    • 同步修改Nginx配置,将fastcgi_pass unix:/run/php/php8.2-fpm.sock;替换为fastcgi_pass 127.0.0.1:9000;,重启Nginx:service nginx restart

内容的提问来源于stack exchange,提问作者Younes Lamhamedi Cherradi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 00:02:36