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会在重启后忽略这些.
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
Fea*_*nne 10
花了我很长时间才弄明白这是一个MAMP问题!为什么默认情况下会启用OPcache--并且需要php.ini修改禁用 - 在应该用于测试网站的应用程序中?无论如何,我通读了整个线程并尝试了各种解决方案.
以下是我对每种解决方案的工作原理以及选择解决方案的注意事项的说明
每个解决方案都独立运作; 不需要冗余.
<?php opcache_reset(); ?>
Run Code Online (Sandbox Code Playgroud)
重要说明:使用php.ini
文件/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
而不是
文件/Applications/MAMP/conf/php5.5.3/php.ini
.如果您使用的是其他版本的PHP,请相应地进行调整.
[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]
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]
;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
.选择网页代码解决方案,如果:
选择服务器配置解决方案:
我个人更喜欢,enable=0
因为它对我来说是最简单的解决方案,我需要默认禁用缓存.