在MAMP中停止PHP 5.5.3的caching

安装了一个新的MacBook与PHP 5.5.3的MAMP。

刷新和刷新什么也不做。 依然没有。 谷歌周围几分钟试图找出什么是错的,回来刷新。 有用。 有没有搞错?

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

networking选项卡显示一个HTTP 200请求,所以index.php文件中的任何新的HTML呈现良好,但是需要由服务器呈现的新的PHP被延迟,并且不呈现,直到一些预定的时间stream逝,不知道如何改变。 这是怎么回事?

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

有趣的是,如果我进入MAMP并将PHP版本更改为旧版本(PHP 5.2或其他版本),它将正常渲染,而不会出现“caching问题”。 切换到PHP 5.5并挂断。 在MAMP首选项caching选项为5.5甚至不存在,并自动禁用。

禁用OPCache

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

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

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

我加了opcache_reset(); 在我的主要PHP停止这种caching。

php5.5.3/conf/php.ini删除它没有为我做任何事情。

编辑

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

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

花了我很长时间才发现这是一个MAMP问题! 为什么OPcache在默认情况下被启用 – 并且要求php.ini修改禁用 – 在应该用于testing网站的应用程序中? 无论如何,我通读这整个线程,并尝试了各种解决scheme。

以下是关于每个解决scheme的工作原理和select解决scheme的注意事项。

每个解决scheme都是独立运作的。 不需要冗余。


网页代码解决scheme

opcache_reset();

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

服务器configurationscheme

重要:使用/Applications/MAMP/bin/php/php5.5.3/conf/php.iniphp.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 
  • 必须在php.ini [OPcache]下添加。
  • 禁用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]
  • 使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]整个[OPcache]部分。
  • 从PHP服务器中删除OPcache。
  • 需要MAMP服务器重新启动。

注意事项

select网页代码解决scheme,如果:

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

select服务器configuration解决scheme如果:

  • 您想要默认禁用caching,而不必在每个项目中都这样做
  • 你对编辑php.ini很熟悉

我个人更喜欢enable=0因为这对我来说是最简单的解决scheme,我需要默认禁用caching。


参考

MAMP 3.0.7.2 for OS X

看起来这是最后一个GUI选项。 MAMP 3.0.7.2 for Mac OS X

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

我只是在代码的最后添加了这个,然后重新启动MAMP。

  opcache.revalidate_freq=0 opcache_reset(); 

编辑“/Applications/MAMP/conf/php5.5.3/php.ini”,然后search[OPcache]并直接在下面添加这个代码:

 opcache.enable=0 

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

哦,我很高兴我find了这个线程! 我把头发拉出来了! 我昨天刚刚升级了MAMP,直到今天一直在做一个项目的时候才注意到这个caching问题。 以为我失去了我的想法。 我只是改变了“/Applications/MAMP/conf/php5.5.3/php.ini”文件的底部opcache.enable = 0

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

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

它列在文件的最底部。

我发现的另一个问题是在QNAP NAS TS-431上。 这个caching也是启用的,如果你正在dynamic地改变文件,或者试图在其上进行开发,那么你将会把你的头发撕掉。 根据其他意见,只是注释掉。 该设置位于:

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

再一次,你会发现在文件底部的设置。