【问题标题】:Apache file caching after editing by ftp通过 ftp 编辑后的 ​​Apache 文件缓存
【发布时间】:2014-10-24 14:48:22
【问题描述】:

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

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

谢谢

【问题讨论】:

  • 当你这样做时会发生什么,例如index.php?a=1,然后更改文件并执行index.php?a=2 ? (这不是解决方案,只是解决它)
  • 其实也算不上什么解决方案,因为不只是index.php,我只是举个例子做个简单的说明。谢谢
  • 您能否提供您的浏览器收到的标头?
  • 执行 phpinfo() 并检查是否有 APC 或 memcache 部分
  • 通过1.1 Varnish查看标题! varnish-cache.org

标签: php apache caching ftp


【解决方案1】:

我相信如果 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');

【讨论】:

  • 你应该和你的房东谈谈如何解决这个问题
  • cmorrissey,感谢您的帮助,是的,我就是这么想的,谢谢 :)
【解决方案2】:

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

在 .htaccess 中试试这个 - 可能是因为新的 php 版本,apc 缓存默认开启:

php_flag opcache.enable 关闭

【讨论】:

    猜你喜欢
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多