停止在MAMP中缓存PHP5.5.3

停止在MAMP中缓存PHP5.5.3,php,caching,mamp,php-5.5,Php,Caching,Mamp,Php 5.5,使用PHP5.5.3在新的Macbook上安装了MAMP 重新加载和刷新不执行任何操作。还是没什么。用谷歌搜索几分钟,试图找出问题所在,然后回来刷新。它起作用了。怎么回事 我进入php.ini并禁用了所有新的OPcache,并将默认缓存时间设置为0。向文档添加标题以强制不进行缓存。还是一样的问题。这到底是怎么回事 “网络”选项卡显示HTTP 200请求,因此index.php文件中的任何新HTML都可以很好地呈现,但需要由服务器呈现的新php会被延迟,直到某个预定的时间集(我不知道如何更改)之后

使用PHP5.5.3在新的Macbook上安装了MAMP

重新加载和刷新不执行任何操作。还是没什么。用谷歌搜索几分钟,试图找出问题所在,然后回来刷新。它起作用了。怎么回事

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

“网络”选项卡显示HTTP 200请求,因此
index.php
文件中的任何新HTML都可以很好地呈现,但需要由服务器呈现的新php会被延迟,直到某个预定的时间集(我不知道如何更改)之后才会呈现。发生什么事了

我在Safari中也检查了这一点,因此这肯定是服务器的问题,它阻止了文件的渲染


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

禁用OPCache

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

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


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

我添加了opcache_reset()在我的主PHP中停止此缓存

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

编辑

原来还有一个
/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
。信息技术 如果我在那里对它进行评论,它就会起作用。

1)in/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) 设置opcache.revalidate\u freq=0

3) 重新启动MAMP

花大约1个小时试图找出可能是什么是痛苦的

我只是在代码末尾添加了这个,然后重新启动MAMP

  opcache.revalidate_freq=0
  opcache_reset();
编辑“/Applications/MAMP/conf/php5.5.3/php.ini”,搜索[OPcache]并直接在其下添加此代码:

opcache.enable=0

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

哦,伙计,我很高兴我找到了这个线程!我在拔头发!我昨天刚刚升级了MAMP,直到今天在一个项目中工作时才注意到这个缓存问题。我以为我疯了。
我刚刚更改了“/Applications/MAMP/conf/php5.5.3/php.ini”文件opcache.enable=0的最底层,我花了很长时间才发现这是一个MAMP问题!为什么在一个本应用于测试网站的应用程序中,OPcache在默认情况下是启用的——并且需要php.ini修补才能禁用?无论如何,我通读了这整条线索,并尝试了各种解决方案

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

每种解决方案都是独立工作的;不需要冗余


网页代码解决方案 opcache_reset();
  • 必须添加到
    php.ini
    中的
    [OPcache]
  • 禁用OPcache
  • 需要重新启动MAMP服务器
opcache.revalidate\u freq=0
  • php.ini
    中的
    [opcache]
    下修改
    opcache.revalidate\u freq
  • 每0秒检查一次OPcache更新,而不是每60秒检查一次
  • 需要重新启动MAMP服务器
注释输出[OPcache]
  • 注释掉
    php.ini
    中的整个
    [OPcache]
    部分
  • 从PHP服务器中删除OPcache
  • 需要重新启动MAMP服务器

考虑 如果出现以下情况,请选择网页代码解决方案:

  • 您只需要强制刷新特定项目的脚本
  • 您不想重新启动MAMP服务器
  • 您不想编辑php.ini
如果满足以下条件,请选择服务器配置解决方案:

  • 您希望在默认情况下禁用缓存,而不必在每个项目中都这样做
  • 您可以轻松地编辑php.ini
我个人更喜欢
enable=0
,因为这是对我来说最简单的解决方案,我需要在默认情况下禁用缓存


工具书类


看起来这终于是一个GUI选项了<代码>适用于Mac OS X的MAMP 3.0.7.2

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

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

它列在文件的最底部

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

控制面板/Applications/Web服务器/PHP.ini维护


再一次,您可以在文件的底部找到设置。

我知道这不是解决您问题的方法,但我个人不太喜欢MAMP,因为,特别是在安装自定义堆栈如此简单的情况下——这里有一个使用自制软件安装堆栈的快速指南:@mewm我没有意识到它会如此简单。干杯使用此功能只需几次按键即可开始使用nginx。我也有同样的问题,并通过注释掉opcache行修复了它。令人费解的是,您必须进入php.ini文件才能改变这一点。这实际上是一种误导,因为您似乎拥有MAMP->Preferences中给出的所有缓存选项
<?php opcache_reset(); ?>
[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]
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
;[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