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

Linux Apache2.4 AWS环境下CKFinder3的sys_get_temp_dir不生效问题

CKFinder 迁移AWS EC2后无效请求错误修复方案

故障现象:本地环境正常运行的ckeditor/ckfinder插件迁移到AWS EC2后,点击功能图标返回Invalid Request Error,请求http://projectdev-ip/labelin/public/_admin/ckeditor/ckfinder/core/connector/php/connector.php?command=Init&lang=en&langCode=en提示无效请求。

核心排查方向

你怀疑的临时目录配置是高概率故障点,对应配置代码$config['tempDirectory'] = sys_get_temp_dir();在EC2环境下存在权限适配问题。

分步修复操作

  • 首先确认EC2实例上PHP默认临时目录的权限:
    新建测试文件写入<?php var_dump(sys_get_temp_dir(), is_writable(sys_get_temp_dir())); ?>,访问后查看输出,确认Web运行用户(通常为nginx/apache/www-data)是否对该目录有读写权限。AWS默认对系统临时目录的权限管控严格,大概率会出现不可写的情况。
  • 替换动态临时目录配置为项目内固定可写目录:
    在CKFinder的config.php中修改配置,示例如下:
    // 注释原动态获取配置
    // $config['tempDirectory'] = sys_get_temp_dir();
    // 手动指定项目内可写目录,路径根据你的项目结构调整
    $config['tempDirectory'] = __DIR__ . '/../../../storage/ckfinder_temp';
    
  • 手动创建对应目录并赋值权限,执行命令:
    mkdir -p /你的项目实际路径/storage/ckfinder_temp
    chown -R nginx:nginx /你的项目实际路径/storage/ckfinder_temp
    chmod -R 755 /你的项目实际路径/storage/ckfinder_temp
    
  • 额外校验项:
    确认CKFinder的$config['authentication']回调函数在AWS环境下能正常返回true,权限校验失败也会返回无效请求错误;同时检查Web服务重写规则、EC2安全组是否拦截了connector.php的请求参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:57:03