CKfinder3版本冲突


项目场景:开发文档版本编辑器版本冲突问题

开发需求:开发文档编辑和版本控制器

       使用PHP开发一个文档版本控制器,可以编辑文档,记录每次历史版本,可以浏览历史记录中的每个版本,以及导出为PDF,Word文件。

开发相关技术:

PHP5.6.9nts版本,Apache2.4.39版本,MySQL5.7.26版本,CKfinder3,CKEditor5      



问题描述:因为PHP版本过低导致报错版本冲突问题

编辑器部分使用CKEditor5,而上传图片功能使用CKfinder3,但是因为PHP版本过低,是5.6.9nts版本的,所以报错版本冲突问题,如下图:

 

Fatal error:Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.3.0". You are running 5.4.45. in 



原因分析:PHP版本过低,以及CKfinder3中配置文件中强制规定PHP版本

PHP版本过低,很多语法不支持,而CKfinder3是最新的,所以在CKfinder3中配置文件中强制规定PHP版本。如下图代码,70300表示7.3版本,获取当前PHP版本并判断是否大于7.3,小于7.3直接报错。

文件位置:ckfinder\core\connector\php\vendor\composer\platform_check.php文件


解决方案:调整 CKfinder版本

下面是解决思路和步骤,错误的思路也一同记录下来参考。

 错误思路:

如上图所示,既然判断版本问题,那把7.3改为当前版本是否可行。

if (!(PHP_VERSION_ID >= 50609)) {
    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.';
}

 结果: Parse error: syntax error, unexpected ':', expecting '{' in

即使通过版本判断,语法也不对,所以这种方法PASS。

保错文件位置:ckfinder\core\connector\php\vendor\symfony\polyfill-php80\bootstrap.php

 

 正确解决思路:

办法:调整 CKfinder版本。

在CKfinder官网中,最下方可以选择任意版本下载。

下载地址:
CKFinder - Download Latest Versionhttps://ckeditor.com/ckfinder/download/?null-addons=

 插一句,因为之前用的是5.5.45nts版本,所以还报了下方的错。所以下载时需要根据自己的PHP版本来,不知道需要什么版本的就先下一个,然后根据报错选择重新下载相应版本或是调整PHP版本。

 翻译:PHP安装不符合CKFinder的最低系统要求。你的PHP版本太旧了。CKFinder 3.x需要PHP5.6+。有关更多详细信息,请参阅CKFinder文档。

下载放入项目相应位置后,运行代码,Network中报错:

{"error":
    {
        "number":500,
        "message":"The file browser is disabled for security reasons. Please contact your           
                   system administrator and check the CKFinder configuration file."
    }
}

原因:默认情况下,CKFinder服务器连接器处于禁用状态。

帮助文档中提示:

        By default, the CKFinder server connector is disabled. If you open the default CKFinder sample (located in /ckfinder/samples/full-page-open.html) you will see the following error message:

        The file browser is disabled for security reasons. Please contact your system administrator and check the CKFinder configuration file.

        In order to enable it, you should set the authentication function in config.php so that it returned true for users that should have access to CKFinder.

这段话的意思是:

        在默认情况下,CKFinder服务器连接器处于禁用状态。如果打开默认的CKFinder示例(位于/CKFinder/samples/full page open.html中),您将看到以下错误消息:出于安全原因,已禁用文件浏览器。请联系您的系统管理员并检查CKFinder配置文件。为了启用它,您应该在config.php中设置身份验证函数,以便对应该有权访问CKFinder的用户返回true。

翻译:出于安全原因,已禁用文件浏览器。请联系您的系统管理员并检查CKFinder配置文件。

解决方法:在配置文件中允许文件上传,即开启上传权限。

文件位置:ckfinder\config.php

 $config['authentication'] = function () {
        return true;
 };

  最后,终于搞定了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CKFinder是一个用于文件管理的Web应用程序,它可以方便地集成到Linux系统中。下面是安装CKFinder的步骤: 1. 首先,确保你的Linux系统已经安装了Apache或Nginx等Web服务器,并且PHP版本为5.6或更高。 2. 下载CKFinder的安装包。你可以从CKFinder的官方网站(https://ckeditor.com/ckfinder/)上下载最新版本的安装包。 3. 解压安装包。使用以下命令解压下载的安装包: ``` tar -zxvf ckfinder_3.x.x.tar.gz ``` 4. 将解压后的CKFinder文件夹复制到你的Web服务器的根目录下。例如,如果你使用的是Apache服务器,将CKFinder文件夹复制到`/var/www/html/`目录下。 5. 配置CKFinder。进入CKFinder文件夹,将`config.php.sample`文件重命名为`config.php`: ``` cd ckfinder mv config.php.sample config.php ``` 6. 打开`config.php`文件,并根据你的需求进行配置。你需要设置一些基本的参数,如文件上传路径、访问控制等。 7. 配置Web服务器。如果你使用的是Apache服务器,需要在Apache的配置文件中添加以下内容: ``` Alias /ckfinder "/var/www/html/ckfinder" <Directory "/var/www/html/ckfinder"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ``` 8. 重启Web服务器,使配置生效。 9. 访问CKFinder。在浏览器中输入CKFinder的URL,例如`http://localhost/ckfinder/`,即可访问CKFinder的文件管理界面。 希望以上步骤对你有帮助!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阑珊处的秋月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值