【问题标题】:Stop caching for PHP 5.5.3 in MAMP在 MAMP 中停止缓存 PHP 5.5.3
【发布时间】:2013-10-05 01:54:45
【问题描述】:

在带有 PHP 5.5.3 的新 Macbook 上安装 MAMP。

重新加载和刷新什么都不做。依然没有。谷歌几分钟试图找出问题所在,回来刷新。有用。有没有搞错?

我进入 php.ini 并禁用了所有新的 OPcache 并将默认缓存时间设置为 0。在文档中添加了标题以强制不进行缓存。还是一样的问题。这到底是怎么回事?

网络选项卡显示 HTTP 200 请求,因此 index.php 文件中的任何新 HTML 都可以正常呈现,但是需要由服务器呈现的新 PHP 会延迟并且直到某个预定时间过去后才会呈现我不知道如何改变。怎么回事?

我也在 Safari 中检查过这个,所以它肯定是一个服务器的东西,它阻止了文件的呈现。

不过,有趣的事实是,如果我进入 MAMP 并将 PHP 版本更改为旧版本(PHP 5.2 或其他版本),它将正常呈现,没有“缓存问题”。切换到 PHP 5.5 并挂断。在 MAMP 首选项中,5.5 的缓存选项甚至不存在并且被自动禁用。

【问题讨论】:

  • 我知道这不能解决您的问题,但我个人不是 MAMP 的忠实粉丝,因为安装自定义堆栈如此简单时尤其如此 - 这是一个非常快速的指南使用自制软件安装堆栈:github.com/josegonzalez/homebrew-php
  • @mewm 我没有意识到它可以这么容易。干杯!只需几次击键,就可以使用它来使用 nginx。 learnaholic.me/2012/10/10/…

标签: php caching mamp php-5.5


【解决方案1】:

禁用 OPCache

MAMP 现在默认开启 OPCache,您可以通过编辑 php.ini 文件来禁用它。确保编辑正确的 php.ini。

我自己也遇到了同样的问题。默认情况下,带有 PHP 5.5.3 版本的 MAMP 运行 OPcache,但您不能像使用旧 PHP 版本 5.2.17 那样在 GUI 中将其关闭。您必须手动注释掉 php.ini 文件 (MAMP/bin/php/[version]/conf/php.ini) 末尾的所有 OPcache 行,并确保停止和启动服务器以进行更改效果。

我更新了 URI,更改也可以通过更改 php 文件夹下的 /conf/ 来反映,但似乎 MAMP 会在重启后忽略这些

【讨论】:

  • 我遇到了同样的问题,并通过注释掉 opcache 行来修复它。令人费解的是,您必须进入 php.ini 文件才能更改它。这实际上非常具有误导性,因为您似乎拥有 MAMP->Preferences 下拉框中提供的所有缓存选项。
  • 我想知道 MAMP 创作者在添加这个“很酷的功能”时使用了他们身体的哪个部位来思考。
  • 我以为我的 ModX 安装有问题,但不,您的回答似乎已解决。谢谢。除此之外,我还恢复到旧版本。它现在运行得更好了。
  • 请注意,您要编辑的php.ini 文件在/bin 中, 在/conf 中。我的完整路径是/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
  • 我已经提交了一个错误报告,希望他们会在未来的版本中默认禁用它:bugs.mamp.info/view.php?id=4296
【解决方案2】:

我在我的主 PHP 中添加了 opcache_reset(); 来停止这种缓存。

php5.5.3/conf/php.ini 中删除它对我没有任何帮助。

编辑

原来还有一个/Applications/MAMP/bin/php/php5.5.3/conf/php.ini。它 如果我在那里评论它就可以工作。

【讨论】:

  • 在 /bin 目录中注释掉 OPcache 对我有用!谢谢!
  • /Applications/MAMP/bin/php/php5.5.3/conf/php.ini 的 php.ini 中评论 OPcache 没有任何作用,但是将 opcache_reset(); 添加到 index.php 有效。
【解决方案3】:

1) 在 /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) 设置 opcache.revalidate_freq=0
3) 重启 MAMP

【讨论】:

  • 这似乎有效。我更喜欢实施这个解决方案,而不是全部评论。但是有区别吗?
【解决方案4】:

花了大约 1 小时试图弄清楚它是什么是痛苦的。

我只是在代码末尾添加了这个并重新启动 MAMP。

  opcache.revalidate_freq=0
  opcache_reset();

【讨论】:

    【解决方案5】:

    编辑“/Applications/MAMP/conf/php5.5.3/php.ini”,搜索[OPcache],直接在下面添加这段代码:

    opcache.enable=0
    

    这将在 MAMP 服务器中使用 PHP 时禁用 opcache。

    【讨论】:

    • 为我的 ubuntu 服务器工作。谢谢。
    【解决方案6】:

    哦,我很高兴我找到了这个帖子!我正在拔头发!我昨天刚刚升级了 MAMP,直到今天在做一个项目时才注意到这个缓存问题。以为我疯了。 我刚刚更改了文件 opcache.enable=0 的最底部的“/Applications/MAMP/conf/php5.5.3/php.ini”

    【讨论】:

      【解决方案7】:

      我花了很长时间才弄清楚这是一个 MAMP 问题!为什么在应该用于测试网站的应用程序中默认启用 OPcache - 并且需要 php.ini 修补才能禁用?无论如何,我通读了整个线程并尝试了各种解决方案。

      以下是我对每种解决方案的工作原理以及选择解决方案的注意事项的说明。

      每个解决方案都独立工作;不需要冗余。


      网页代码解决方案

      opcache_reset();

      <?php opcache_reset(); ?>
      
      • 必须在网页代码中添加。
      • 强制重新加载所有脚本。
      • 无需重新启动 MAMP 服务器即可工作。

      服务器配置解决方案

      重要提示:/Applications/MAMP/bin/php/php5.5.3/conf/php.ini 中使用php.ini 文件,而不是在 /Applications/MAMP/conf/php5.5.3/php.ini。如果您使用的是不同版本的 PHP,请进行相应调整。

      启用=0

      [OPcache]
      zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
      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
      enable=0
      
      • 必须在[OPcache] 下添加php.ini
      • 禁用 OPcache。
      • 需要重新启动 MAMP 服务器。

      opcache.revalidate_freq=0

      [OPcache]
      zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
      opcache.memory_consumption=128
      opcache.interned_strings_buffer=8
      opcache.max_accelerated_files=4000
      opcache.revalidate_freq=0
      opcache.fast_shutdown=1
      opcache.enable_cli=1
      
      • 修改php.ini[OPcache]下的opcache.revalidate_freq
      • 使 OPcache 每 0 秒而不是每 60 秒检查一次更新。
      • 需要重新启动 MAMP 服务器。

      注释掉 [OPcache]

      ;[OPcache]
      ;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
      ;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
      
      • 注释掉php.ini 中的整个[OPcache] 部分。
      • 从 PHP 服务器中删除 OPcache。
      • 需要重新启动 MAMP 服务器。

      注意事项

      在以下情况下选择网页代码解决方案:

      • 您只需要强制刷新特定项目的脚本
      • 您不想重新启动 MAMP 服务器
      • 您不想编辑 php.ini

      在以下情况下选择服务器配置解决方案:

      • 您希望默认禁用缓存,而不是在每个项目中都这样做
      • 您对编辑 php.ini 感到满意

      我个人更喜欢enable=0,因为它对我来说是最简单的解决方案,而且我需要默认禁用缓存。


      参考文献

      【讨论】:

        【解决方案8】:

        看起来这终于是一个 GUI 选项了。 MAMP 3.0.7.2 for Mac OS X.

        【讨论】:

        • 这显然不会禁用 OPCache。即使此设置“关闭”,我的仍然处于活动状态。
        【解决方案9】:

        这在 MAMP 的 Windows 版本中也是最新的。

        C:\MAMP\conf\php5.6.3\php.ini

        它列在文件的最底部。

        我发现的另一个问题是在 QNAP NAS TS-431 上。此缓存也已启用,如果您正在处理动态更改的文件,或者尝试在其上进行开发,那么您将扯掉您的头发。根据其他 cmets,只需将其注释掉。设置位于:

        控制面板/应用程序/Web 服务器/PHP.ini 维护。

        再次,您会在文件底部找到设置。

        【讨论】:

          【解决方案10】:

          打开您的 Mamp 面板 在右上角单击“首选项” 将打开一个弹出窗口,有一个“关闭”php缓存的选项。 它就像魅力一样工作,无需修改任何其他文件。

          【讨论】:

            猜你喜欢
            • 2013-11-28
            • 2021-01-04
            • 2017-11-03
            • 1970-01-01
            • 2013-11-08
            • 1970-01-01
            • 2014-02-10
            • 1970-01-01
            • 2013-10-12
            相关资源
            最近更新 更多