CKFinder 3 – PHP 连接器文档
快速入门指南

开始之前

确保您的服务器上已正确配置 PHP – 您应该运行 PHP 5.4+GD 和 Fileinfo 扩展应已启用,并且应支持 JSON MIME 类型。虽然在生产服务器上通常已启用,但在您的本地开发服务器上可能并非如此。有关如何更改这些设置的更多信息,请查看 故障排除 部分。

安装

确保您的服务器配置正确后,完成以下步骤以开始使用 CKFinder。

下载 CKFinder

访问 CKFinder 下载 网站并下载 PHP 版本。将发行版文件复制到您的 Web 服务器,并将它们放置在您的网站上的 /ckfinder/ 文件夹或您选择的任何其他文件夹中。

启用 CKFinder

默认情况下,CKFinder 服务器连接器处于禁用状态。如果您打开默认的 CKFinder 示例(位于 /ckfinder/samples/full-page-open.html),您将看到以下错误消息

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

要启用它,您应该在 config.php 中设置 身份验证 函数,以便它对应该访问 CKFinder 的用户返回 true

示例 1

启用 CKFinder 的最简单方法(尽管不安全)

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

快完成了!如果您再次打开默认的 CKFinder 示例(位于 /ckfinder/samples/full-page-open.html),您现在将看到 CKFinder。根据服务器权限,您甚至可能无需进一步操作即可创建文件夹或上传文件 - 如果没有,请继续阅读。

配置文件夹路径

最后一件需要设置的重要事项是

  • 存储文件的位置。
  • 该位置的文件系统权限,以便 Web 服务器可以访问它。

CKFinder 在称为 资源类型顶级文件夹上运行。默认情况下,CKFinder 附带了两个配置好的默认资源类型(文件图像),它们使用相同的默认 后端。这意味着查看和上传到这些文件夹的文件所需的一切,就是给予 Web 服务器对后端位置的读写权限。

默认后端

CKFinder 配置文件带有一个名为 default 的后端,它在本地文件系统上运行。此默认后端最初指向一个 URL(/ckfinder/userfiles/),CKFinder 会将它解析为相应的服务器路径。

$config['backends'][] = array(
'name' => 'default',
'adapter' => 'local',
'baseUrl' => '/ckfinder/userfiles/'
);

文件系统权限

配置好后端后,最后要做的就是确保 Web 服务器有权写入它。

示例 2

假设 CKFinder 安装在 https://example.com/ 中,并且在服务器上,网站文件夹的完整路径是 /home/joe/www/example.com/。如果后端位置 (baseUrl) 设置为 /userfiles/,上传的文件将位于 /home/joe/www/example.com/userfiles/ 中。

现在,为了正确设置文件权限

  1. 在服务器上创建一个文件夹来存储所有上传的文件 (/home/joe/www/example.com/userfiles/)。
  2. 使步骤 (1) 中提到的 userfiles 文件夹对Internet 用户可写
    • 对于 Windows 系统,请授予 IUSR_<ServerName> 用户写入权限。
    • 对于 Linux,请将其 chmod0777
      注意:由于通常将权限设置为 0777 不安全,因此建议将目录的组所有权更改为与 Apache 相同的用户,并添加组写入权限。如有任何疑问,请联系您的系统管理员。

下一步

CKFinder 运行起来后,您现在可以专注于根据您的需求调整一些 配置选项

安全性

如果 CKFinder 管理的文件通过 Web 服务器提供,建议进行一些服务器配置微调,以确保以安全的方式提供文件。要了解更多信息,请查看以下两篇文章

故障排除

如果您在安装和运行 CKFinder 时遇到问题,请查看以下技巧,了解如何调整一些服务器设置以解决您的问题。如果 CKFinder 在初始配置和服务器设置调整后未按预期工作,请查看 调试和日志记录 部分。

JSON MIME 类型支持

如果您使用 IIS Express 作为您的 Web 服务器,您需要确保 JSON 是允许的 MIME 类型。默认情况下,它是不允许的,这可能会导致 CKFinder 语言文件不可用,您将在 CKFinder 中看到以下警报

有关 IIS 中缺少 JSON 支持的警报消息

因此,您需要 将 JSON 添加为新的 MIME 类型 到您的 IIS 配置中。

添加 MIME 类型对话框中设置以下选项

  • 文件名扩展名:.json
  • MIME 类型:application/json

单击确定以接受并重新启动服务器以应用您的更改。

Fileinfo 扩展

默认情况下,Fileinfo 扩展在 XAMPP 服务器上处于禁用状态(在版本 5.6.3 上检查)。要启用它,请执行以下操作

  1. 打开 C:\xampp\php\php.ini(或 XAMPP 安装位置的另一个路径)。
  2. 找到以下行:;extension=php_fileinfo.dll
  3. 通过从开头删除 ; 来取消注释。
  4. 重新启动 Apache。
  5. 结果:Fileinfo 扩展现在应该处于活动状态。

您可以使用此脚本测试您的 PHP 安装(将其保存为 test.php 并运行)

<?php
if (version_compare(PHP_VERSION, '5.6.0') >= 0) {
echo ' [OK] PHP 版本高于 5.6:'.phpversion();
} else {
echo ' [ERROR] 您的 PHP 版本对于 CKFinder 3.x 太旧了。';
}
if (!function_exists('gd_info')) {
echo ' [ERROR] GD 扩展未启用。';
} else {
echo ' [OK] GD 扩展已启用。';
}
if (!function_exists('finfo_file')) {
echo ' [ERROR] Fileinfo 扩展未启用。';
} else {
echo ' [OK] Fileinfo 扩展已启用。';
}

GD 扩展

在罕见的情况下,即使已启用 GD,某些图像的上传或编辑也会失败。这种情况发生在 Mac OSX 10.10(Yosemite)上的 PNG 文件中,默认的 PHP 安装[存在缺陷] (http://stackoverflow.com/questions/26443242/after-upgrade-php-no-longer-supports-png-operations)。此类问题严格与服务器端配置相关,并且会影响使用图像的任何 PHP 应用程序,而不仅仅是 CKFinder。