缺少文件 - Elgg和数据库

时间:2015-02-02 16:01:20

标签: php mysql database elgg

我试图帮助朋友修复他与Elgg一起开发的应用程序。我熟悉PHP,但对Elgg来说却是全新的。

长话短说,有两个主要问题似乎随机发生:

  1. 用户有时会(大约100分之一)上传文件,然后文件就会消失。
  2. 即使文件成功显示在数据库上,它的速度大约相同(100个中的1个),有时甚至数周之后,它仍然会消失。
  3. 我想通过日志来试图找到问题的根源,但是有很多人可以在任何给定时间使用它和数百个文件(音频,图像,PDF,视频等)可以在任何一天上传,甚至不知道要查找什么。

    在这个Elgg项目上找出这些看似随机错误的问题的智能方法是什么?或者是否有人对可能出现的问题有任何见解?

    非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

要做的第一件事是在服务器错误日志中查找错误和警告,例如:

cat path-to-your-error-log | grep Error

这样的错误应该是罕见的,所以它应该很容易缩小范围。

假设链接到该文件的页面是完整的(因此实体正确存储在数据库中),可能是文件太大但应用程序未正确注册错误 - 检查max_file_size in php.ini并查找问题和文件大小之间的相关性。此类错误应显示在服务器错误日志中。

我们过去也遇到过filesytem错误或更改的文件权限问题,即使最初成功上传文件也无法访问文件。确保文件本身实际存在,并且Elgg数据目录中的权限正常。如果不是,请修复磁盘。这些错误可能只会显示为警告,因此可能更难找到。

大多数Elgg版本可能出现的另一个问题是服务器时区是否发生变化,因为文件存储在根据其所有者的首次登录日期命名的目录中。如果服务器的时区发生变化,Elgg就不够聪明,不知道目录结构也必须改变。您可以使用date_default_timezone_set()在engine / settings.php中显式设置时区。