我在共享主机上运行了 Tiki 15.4 - 我遇到了一个问题文件库功能:将内容上传到文件库效果很好,例如,我上传了一个 .webm 视频,然后 wiki 界面将其列为库中的内容。但是,我无法下载或对此文件或任何其他文件执行任何其他操作。
尝试下载时,我的所有文件库都出现“无法访问文件”错误。我可以为所有新上传的内容重现此错误。
我该如何诊断发生了什么?我尝试了以下方法:
- tiki-syslog.php 仅记录我的管理员登录/注销。
- 我激活了所有文件档案/文件事件的记录和显示,并生成了一份操作报告。这里显示我下载了文件,但没有显示任何错误/失败信息。
- 我检查了 PHPmyadmin 中的数据库,所有表结果均正常。
编辑:
- 我也启用调试模式,我收到的 php 消息似乎并不重要,即它们不应该暗示某些会损害功能的事情。
编辑 2:访问应保存文件的文件夹的权限可能存在问题。Tiki 有两种文件库选项:可以将它们保存在 Web 目录中或数据库中。在设置时,我选择将它们保存在目录中。 Tiki 文档表示,此目录不应直接访问。这可以通过两种方式实现:
- 使用目录外部你的 Web 服务器文档根目录,确保你的 PHP 脚本可以读取和写入该目录
- 使用目录里面文档根目录并使用 .htaccess 阻止用户列出目录内容
我指定的文件夹是里面DocumentRoot(我认为),即它位于 Tiki 的根目录下:tiki-15.4/files
,因此我相信 PHP 应该有权在那里读取/写入。我没有对权限进行任何更改,而且我不确定我是否可以(或如何)在此共享主机上执行此操作。
当前权限为:
e42604@web06:~$ ls -ld html/apps/tiki-15.4/files
drwxr-xr-x 4 e42604 e42604 4096 Jan 21 2017 html/apps/tiki-15.4/files
e42604 是我的 ssh 用户。我不知道它是否与 Web 服务器用户相同,但我猜应该是相同的,对吧?
这些是 Web 根目录的权限:
e42604@web06:~$ ls -ld
drwxr-x--- 13 e42604 www-data 4096 Jan 3 21:09 .
我检查了我指定的通过 FTP 上传所有文件的文件夹(tiki-15.4/files
),它确实不是包含我已上传的文件,尽管它们都在 wiki 界面中列出。
但是,当我选择将文件库存储在数据库中时,它可以工作:我可以上传内容并再次下载。
我可以将此作为解决方案,但我更想知道如何将文件存储在 Web 文件夹中。