ftp编辑后的Apache文件缓存


Apache file caching after editing by ftp

我遇到了这种奇怪的行为,在共享主机上,我通过FTP连接,当我编辑(并保存)一些文件时,更改至少需要几分钟才能生效。例如,我在index.php文件中放入行echo "test";die;并保存它:程序(我使用的是文件zilla)显示文件已上载到服务器。为了以防万一,我正在做cat index.php(通过油灰连接),我可以看到实际上已经完成了更改。但是,你猜怎么着,当我在浏览器中打开时,它和以前一样工作(没有显示我的"测试")。但我只是等了几分钟,刷新页面,它显示了我的"测试"。我删除了浏览器缓存(尽管在这种情况下并不重要,也试图通过CTRL+F5刷新页面),但毕竟只有几分钟后更改才会生效。同样的事情,当我删除那一行并再次检查它是否被保存时,在几分钟内,当文件中没有任何内容时,我仍然看到了回声。

那么,有没有这样一件事,apache有某种缓存,所以即使我在物理驱动器中更改了文件,它也会使用那里的文件,并且只在几分钟后更新缓存?

感谢

我相信,如果Varnish设置正确,你可以像这样通过PHP关闭它。

header('Pragma: no-cache');
header('Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate, proxy-revalidate');
header('Expires: Tue, 04 Sep 2012 05:32:29 GMT');

文件正在保存,但php脚本没有更改?

在.htaccess中尝试一下——也许是因为新的php版本,apc缓存默认打开:

php_flag opcache.enable关闭