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

CentOS7部署Strapi后台保存失败 提示403 Forbidden错误

故障场景
  • 部署环境:CentOS 7服务器部署Strapi,全安装流程无异常提示
  • 核心报错:管理后台执行任意保存操作均失败,浏览器控制台返回以下错误
Failed to load resource: the server responded with a status of 403 (Forbidden)
  • 故障过程:部署初期可正常创建若干content-types,后续配置relational fields(关联字段)时首次触发该错误;初步怀疑与roles and permissions插件相关,先后尝试调整权限配置、更新个人账号资料,所有保存类操作均触发相同403报错,无法完成任何保存动作。
排查&修复方案

按优先级依次操作,每步完成后重启Strapi服务测试,问题解决即可停止后续操作:

  • 第一步:修复项目目录权限
    CentOS 7环境下最常见的触发原因是Strapi运行用户对项目核心目录无写入权限:配置关联字段、修改权限、更新账号信息等操作都需要写入项目配置文件、生成临时缓存,权限不足时会直接返回403。
    执行以下命令时替换为实际项目路径、运行Strapi的系统用户(pm2部署可通过pm2 list查看运行用户)修复权限:

    chown -R 你的strapi运行用户:你的strapi运行用户 /你的strapi项目实际存放路径
    find /你的strapi项目实际存放路径 -type f -exec chmod 644 {} \;
    find /你的strapi项目实际存放路径 -type d -exec chmod 755 {} \;
    # 给需要运行时写入的目录分配写权限
    chmod -R 775 /你的strapi项目实际存放路径/tmp
    chmod -R 775 /你的strapi项目实际存放路径/public
    chmod -R 775 /你的strapi项目实际存放路径/src
    chmod -R 775 /你的strapi项目实际存放路径/config
    chmod -R 775 /你的strapi项目实际存放路径/extensions
    

    权限修复后如果是用pm2部署,执行pm2 restart strapi服务名重启服务测试。

  • 第二步:修正安全中间件配置
    如果配置了Nginx反向代理、用域名访问后台,Strapi默认安全中间件会拦截非信任来源的提交请求,返回403。打开项目下config/middlewares.js配置文件,替换为以下配置,注意将其中的访问地址替换为你实际打开后台用的IP/域名:

    module.exports = [
      'strapi::errors',
      {
        name: 'strapi::security',
        config: {
          contentSecurityPolicy: {
            useDefaults: true,
            directives: {
              'connect-src': ["'self'", 'https:'],
              'img-src': ["'self'", 'data:', 'blob:'],
              'media-src': ["'self'", 'data:', 'blob:'],
              upgradeInsecureRequests: null,
            },
          },
          cors: {
            origin: ["http://你的服务器IP:1337", "https://你的后台访问域名"],
            credentials: true,
          },
        },
      },
      'strapi::cors',
      'strapi::poweredBy',
      'strapi::logger',
      'strapi::query',
      'strapi::body',
      'strapi::session',
      'strapi::favicon',
      'strapi::public',
    ];
    

    保存后在项目根目录执行npm run build或者yarn build重新构建管理后台,重启服务后测试。

  • 第三步:重置管理员权限配置
    如果前两步操作后问题依旧,说明调整权限时误修改了管理员角色的核心操作权限,导致管理员自身无保存操作的权限。直接重置权限配置即可:

    1. 提前备份项目对应的数据库
    2. 连接数据库,清空admin_permissions、admin_roles、permissions表中自定义的权限记录
    3. 回到项目根目录重新执行build命令构建后台
    4. 重启服务,使用初始管理员账号登录即可恢复正常保存功能。

注意:所有涉及配置修改、后台构建的操作,必须重启Strapi服务后配置才会生效,不要直接刷新页面测试。

内容的提问来源于stack exchange,提问作者Talles Amadeu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:54:23