在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.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
- 必须在
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。
参考
看起来这是最后一个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维护。
再一次,你会发现在文件底部的设置。