繁体   English   中英

刚刚升级了 Bitnami WAMP 堆栈,现在我的 PHP 文件忽略了文件更改

[英]Just upgraded Bitnami WAMP stack, now my PHP file are ignoring file changes

不知道我应该在这里输入什么代码。 问题很简单,我在 HTML 或 PHP 中编辑了一些文本并重新加载页面“localhost/mypage”并且没有显示更改。

它时不时地发生变化,但我不知道是什么条件导致这种情况发生。 有时它会注意到变化,有时则不会。 起初我以为它与包含文件有关,但似乎并非如此。

我已经尝试在站点 1 和站点 2(本地主机的两个子文件夹)上编辑文件,并且行为是一致的。

我可以从字面上写一些简单的东西:

<?php echo 'this';?>

加载后在页面上看到,然后改成

<?php echo 'that';?>

我仍然会在页面上看到“this”。

我怀疑这是某种缓存问题,但我把它放在我所有文件的顶部:

    header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', FALSE);
    header('Pragma: no-cache');

根本没有任何区别。 这只是在我从 Bitnami 7.0.31-1 升级时开始的。 我尝试了最新的,也降级到 7.2.24-0,它们是一样的。 不知道发生了什么。 甚至不知道从什么开始。

当网站不响应简单的文本更改时,您会怎么做?

显然,有一个名为“OPcache”的缓存系统,PHP 可用,Bitnami 出于某种原因默认打开(或者可能是较新的 PHP 版本这样做?不确定)。 无论哪种方式,通过在 php.ini 文件中将 opcache.enable 显式设置为 0,行为已停止。

那是缓存的事情。 您可以通过多种方式“解决”它。

1)当你刷新不只是 f5 而是使用 R+F5 (缓存刷新)

2)在开发者控制台中的大多数浏览器中,当您打开它时,您可以 select 自动刷新缓存。

3)当您打开开发控制台并右键单击页面上的刷新按钮时,您可以选择缓存刷新

这 3 个解决方案应该可以解决您的问题。 大多数情况下,如果您没有缓存刷新,css 不会显示更改。

OPCache

就像张贴者 not_a_generic_user 在他自己的评论中所说的那样,OPCache 将是大多数人对此感到困惑的原因。 这是 Bitnami 默认启用的 (2) 是较新版本。 它已包含在 PHP 5.5.0 和更新版本中。

好吧有趣...但我不想让它运行?

如前所述,您可以在 php.ini 中禁用 OPCache,但opcache.enable并不总是完全修复它。 要完全禁用 OPCache,请确保设置了以下所有设置

opcache.enable_cli = 0
opcache.enable     = 0

Bitnami 还提供以下功能:

#Include conf/pagespeed.conf
#Include conf/pagespeed_libraries.conf

确保将其放入您的 httpd.conf 中;)

我已经完成了开发,如何使用 OPCache 来提高性能?

OPCache 已经很好地记录了哪个设置的作用,但普遍的共识已经落在以下默认设置上(1)

opcache.memory_consumption=128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
opcache.enable_cli = 1
opcache.enable = 1

我应该使用它吗?

对于大多数生产情况来说,没有理由不这样做,OPCache 是一个简单的缓存系统,它在大多数处理 php 代码的环境中运行良好。 如果您决定使用 Laravel 或 Symfony 等框架,他们很可能会为您的项目提供建议设置。 检查它是否受支持,如果支持,请启用它。

如果你想运行任何有许多用户和活动连接的大型项目,那么 OPCache 可能还不够。 如前所述,这是一个非常简单的系统。

在我忘记之前还有一件事,您可以使用以下 php function 清除缓存

opcache_reset()

来源

(1) https://www.php.net/manual/en/book.opcache.php (OPCache 文档)

(2) https://docs.bitnami.com/oci/infrastructure/lamp/administration/disable-cache/ (Bitnami关于缓存的声明)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM