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

Docker部署WordPress挂载本地代码后插件文件不存在被停用问题

The plugin has been deactivated due to an error: Plugin file does not exist 报错的核心原因是WordPress数据库中记录的已激活插件的文件路径,在容器运行的文件系统中实际不存在,触发自动停用逻辑。结合你给出的docker-compose配置,按以下步骤排查即可:

排查步骤
  • 修正卷挂载冲突
    你当前同时配置了父目录和子目录的两层挂载,逻辑存在冗余且容易触发路径优先级问题:Docker在挂载父目录../../blogs到/var/www/html后,再挂载子目录../../blogs/plugins到/var/www/html/wp-content/plugins时,若本地../../blogs/plugins路径不存在、或者相对路径计算错误,会自动在容器内创建空的/var/www/html/wp-content/plugins目录,覆盖掉父目录挂载带来的插件文件。
    先执行命令验证挂载是否正常,替换<>中的容器名:
docker exec <wordpress容器名> ls -la /var/www/html/wp-content/plugins

如果输出为空,或者没有你本地的插件文件,说明挂载路径错误。可以先删除plugins子目录的挂载配置,仅保留根目录挂载即可:

volumes:
  - "../../blogs:/var/www/html"

注意相对路径是相对于docker-compose.yml文件所在的目录,若不确定可以替换为绝对路径规避错误。

  • 修复文件权限问题
    WordPress官方镜像默认使用www-data用户(uid=33,gid=33)运行服务,若你本地../../blogs目录的权限不允许该用户读取,容器内会识别不到插件文件。执行以下命令修复本地目录权限:
sudo chown -R 33:33 ../../blogs
  • 核对数据库插件记录
    你配置了自动导入./mysql-dump中的旧数据库备份,旧备份的wp_options表中active_plugins字段存储的插件路径,可能和你本地plugins目录中实际的插件路径不匹配。可以登录你配置的phpmyadmin(地址localhost:8081),找到wp_options表的active_plugins字段,删除对应不存在的插件的记录,或者直接清空该字段后重新在WordPress后台激活插件即可。

  • 验证WordPress版本兼容性
    如果你本地blogs目录中的WordPress核心文件版本和wordpress:latest镜像的PHP版本不兼容,也会出现插件文件识别失败的问题。可以将镜像版本固定为和你本地WordPress版本匹配的PHP版本,例如WordPress 6.2对应wordpress:6.2-php7.4,避免latest标签自动升级带来的兼容问题。

快速修复操作
  1. 删掉wordpress服务下的plugins子目录挂载配置,仅保留根目录挂载
  2. 执行docker-compose down && docker-compose up -d重启服务
  3. 执行权限修复命令修改本地目录所有权
  4. 进入WordPress后台重新激活插件即可

内容的提问来源于stack exchange,提问作者Happy Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:36:05