这是旧的错误在VirtualBox中(参见:#819,#9069,#12597,#14920),其中vboxvfs似乎有一些问题mmapped对文件的访问被同步。
当您在VM之外编辑文件时,可能会发生这种情况,并且您希望在VM中看到相同的更改。
要解决此问题,您需要禁用内核发送文件支持,以便通过禁用EnableSendfile
option(在httpd.conf
或vhosts文件中禁用)来将文件传递到客户端。
<Directory "/path-to-nfs-files">
EnableSendfile Off
</Directory>
这对NFS或SMB挂载文件尤其麻烦。更改后重新加载Apache。
Similar for Nginx
(在nginx.conf
中),例如,
sendfile off;
其他解决方法是要记得在主机上没有编辑文件,或尝试重新编辑同一个文件,但虚拟机内。
另一个解决方法包括删除Linux页面缓存,例如,
echo 1 > /proc/sys/vm/drop_caches
或清除缓存每秒(按this post),尝试:
watch -n 1 $(sync; echo 1 > /proc/sys/vm/drop_caches)
注:号码的释放页缓存,2目录项和inode,3页缓存,目录项1个代表和inodes。
上述问题可以通过以下MMAP测试程序被复制,见:mmap-problem.c
。
我有同样的问题,但有一个文本(JSON)文件。我只能做一个足够具体的搜索,找到这个答案我想Nginx的,发现它有同样的问题,因为阿帕奇之后。 – 2013-10-11 10:49:08