Php 检测从服务器删除文件的原因
我正在LAMP/php上开发一个文档管理应用程序,它允许您在服务器上添加和删除PDF。它工作得很好,除了一个令人烦恼的问题——你星期一上传的文件可能在星期二就不见了,我不知道为什么。看起来整个目录都被删除了——我怀疑某个地方有一个不完整的字符串被传递到了一个取消链接的地方,但是我已经禁用了我能找到的所有从服务器上删除文件的代码,我仍然有问题。如何诊断这些随机消失文件的原因?是否有任何实用程序可用于记录任何试图删除或更改文件或目录的行为 你最好能找到你的bugPhp 检测从服务器删除文件的原因,php,linux,ubuntu,lamp,delete-file,Php,Linux,Ubuntu,Lamp,Delete File,我正在LAMP/php上开发一个文档管理应用程序,它允许您在服务器上添加和删除PDF。它工作得很好,除了一个令人烦恼的问题——你星期一上传的文件可能在星期二就不见了,我不知道为什么。看起来整个目录都被删除了——我怀疑某个地方有一个不完整的字符串被传递到了一个取消链接的地方,但是我已经禁用了我能找到的所有从服务器上删除文件的代码,我仍然有问题。如何诊断这些随机消失文件的原因?是否有任何实用程序可用于记录任何试图删除或更改文件或目录的行为 你最好能找到你的bug find codebase/ -ty
find codebase/ -type f -exec grep -il "unlink" '{}' \;
alertativley如果您想要一个黑客补丁,请更新您的apache用户,使其拥有一个umask,使其能够创建文件,但不能删除它们
sed -i 's/^\(start|[a-z|-]*)\)/\1\n umask 0222/' `which apachectl`
此外,这将在错误日志中生成权限错误…更改文件夹上的权限,并查看错误开始出现的位置。下面有一个链接可以帮助您:@pzirkind:如果文件被PHP脚本删除,则该链接将不起作用。可能的副本可能是应用程序之外的内容,例如,运行的cron会修剪某些目录,但这只有在服务器上不单独存在时才可能发生。
find codebase/-type f | xargs grep-sl“unlink”
更容易记住。。。“就我的3.14美分。”Michael,你介意解释一下find命令的作用以及它将如何帮助解决所问的问题吗。