检测文件从服务器上删除的原因


Detecting why files are being deleted from the server

我正在LAMP/php上开发一个文档管理应用程序,该应用程序允许您在我们的服务器上添加和删除pdf。它工作得很好,除了一个恼人的问题——你周一上传的文件可能在周二就消失了,我无法诊断原因。似乎整个目录都被删除了——我怀疑某个地方有一个不完整的字符串被传递给了一个取消链接或其他东西,但我已经禁用了我能找到的从服务器上删除文件的每一行代码,但我仍然有麻烦。如何诊断这些随机消失的文件的原因?我是否可以使用任何实用程序来记录对文件或目录的任何尝试删除或更改?

理想情况下,您希望找到您的错误…

find codebase/ -type f -exec grep -il "unlink" '{}' ';

另外,如果你想要一个hack的修复,更新你的apache用户有一个umask,使它能够创建文件,但不能删除它们…

sed -i 's/^'(start|[a-z|-]*)')/'1'n    umask 0222/' `which apachectl`