php 未始终如一地显示文件更改

php not showing changes to files consistently

我正在对 php 文件进行更改,但它们有时没有显示。有时他们会立即显示。有时我不得不等几分钟。我已经完成并关闭了所有我想关闭的缓存。这个问题是不一致的,很难一致地复制。

回答我自己的问题...

我花了很长时间进行试验以始终如一地重现该行为。我不得不让服务器在几分钟内不刷新任何页面。然后,如果我在刷新页面之前更改文件,更改会立即显示,所有后续更改也会立即显示。如果我先刷新页面,然后对文件进行更改,那么在我刷新 10-20 次左右之前不会显示后续更改。

顺便说一句,html 文件无论如何都会显示所有更新,所以这是一个 php 问题。

在找到答案之前,我试过...

  • 关闭 nginx 缓存
  • 将 nginx conf 设置为 sendfile off;
  • 将 nginx conf 设置为 expires off;

... none 这些作品。然后我发现它实际上是OPcache。我通过将 php.ini 文件更改为此(并重新启动所有服务)

来解决问题

opcache.enable=0

我关于这个问题的问题参考这个link

解决了

:Nginx Server “caches” PHP. Updated Page does not Reload

作者:

service php-fpm restart # most centos
service php7-php-fpm restart # centos and remi php7
service php7.0-fpm restart # ubuntu

您是否在 header 中尝试了以下元标记?

<meta http-equiv="Cache-control" content="no-cache">