在MAMP中停止PHP 5.5.3的缓存

Dar*_*nce 123 php caching mamp php-5.5

在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的缓存选项甚至不存在,并且会自动禁用.

小智 206

禁用OPCache

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

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

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

  • 请注意,您要编辑的`php.ini`文件位于/ bin,*not*in/conf.我的完整路径是`/ Applications/MAMP/bin/php/php5.5.3/conf/php.ini`. (67认同)
  • 我想知道他们的身体MAMP创作者的哪一部分在添加这个"很酷的功能"时会想到. (17认同)
  • 你是绝对的野兽,在我偶然发现这个帖子之前,我已经在我的MAMP上咒骂了2个月. (8认同)
  • 我有同样的问题,并通过注释opcache行修复它.有点令人费解的是你必须进入php.ini文件来改变它.这实际上是非常误导的,因为看起来你有MAMP-> Preferences下拉框中给出的所有缓存选项. (4认同)

Joe*_*eri 39

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

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

编辑

原来还有一个/Applications/MAMP/bin/php/php5.5.3/conf/php.ini.如果我在那里评论它,它的作用.


小智 26

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

  • 这似乎有效.我很乐意实施这个解决方案而不是评论它.但是有区别吗? (2认同)

Fea*_*nne 10

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

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

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


网页代码解决方案

opcache_reset();

<?php opcache_reset(); ?>
Run Code Online (Sandbox Code Playgroud)
  • 必须添加到网页代码中.
  • 强制重新加载所有脚本.
  • 无需重启MAMP服务器即可运行.

服务器配置方案

重要说明:使用php.ini文件/Applications/MAMP/bin/php/php5.5.3/conf/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
Run Code Online (Sandbox Code Playgroud)
  • 下必须加[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
Run Code Online (Sandbox Code Playgroud)
  • 修改opcache.revalidate_freq[OPcache]php.ini.
  • 使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
Run Code Online (Sandbox Code Playgroud)
  • 评论整个[OPcache]部分php.ini.
  • 从PHP服务器中删除OPcache.
  • 需要MAMP服务器重启.

注意事项

选择网页代码解决方案,如果:

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

选择服务器配置解决方案:

  • 您希望默认禁用缓存,而不必在每个项目中执行此操作
  • 你很喜欢编辑php.ini

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


参考