为了加速php代码的执行速度,大家一般都开启了php的opcache加速。但是,一旦开启了这个opcache加速,就会有个副作用。那就是,你调试代码时,修改了一段代码,你急切地盼望看到效果时,但是服务器端就是不变化。死活都不变化,你无助地开始怀疑人生..... 苏南大叔的这个应用场景描述地还不错吧。就是这种无助和无奈。今天苏南大叔来教大家如何应对这种情况。

需求描述

对于phpopcache,如果我们的网站不是在调试状态下面的话,这个opcache还是挺有用的。毕竟可以加速网站的浏览速度,这事对于谁都是件好事。然而,调试的时候,这个就是不可接受的事情了。而一般要关闭这个opcache需要修改php.ini文件,而且要重启php-fpm,而且影响是全局的,没有被调试的网站,也会失去opcache的加速效果。这显然也不是我们希望看到的。

下图演示:可以通过宝塔面板,快速添加php72opcache支持。

php调试没有效果怎么办?关闭opcache不使用系统缓存 - php72opcache
php调试没有效果怎么办?关闭opcache不使用系统缓存(图6-1)

临时解决方案

苏南大叔在这里利用以前,我们学习过的一个知识点(https://newsn.net/say/user-ini-howto.html),来临时关闭当前调试的网站的opcache,这样就不会影响其他站点了。

过程非常简单,在被调试的网站根目录下面添加个.user.ini就可以了。记得里面放置如下配置内容。

opcache.enable=0;

php调试没有效果怎么办?关闭opcache不使用系统缓存 - opcache_ini
php调试没有效果怎么办?关闭opcache不使用系统缓存(图6-2)

永久解决方案

当然,对于本地的php调试环境来说,苏南大叔强烈建议大家永久关闭opcache。默认情况下,phpopcache扩展,是默认开启的。关闭的方式就是:找到php.ini中的opcache.enable。然后取消注释,然后修改其值为0即可。

opcache.enable=0;

php调试没有效果怎么办?关闭opcache不使用系统缓存 - php-ini-opcache
php调试没有效果怎么办?关闭opcache不使用系统缓存(图6-3)

如果您找不到您系统里面的php.ini文件,那么,您可以参考下面这篇文章:

修改保存之后,重启php生效。如果您的系统是mac,您可能需要如下命令:

brew services restart php

另外,指的注意的是:opache的具体配置信息,可能是在附加的.ini文件中,并不在默认的php.ini文件中。所以,如果您看到没有效果的话,这也许是个可行的思路。比如,在苏南大叔的系统中,存在着下面一个文件路径。

/usr/local/etc/php/7.2/conf.d/ext-opcache.ini

php调试没有效果怎么办?关闭opcache不使用系统缓存 - opcache_ext_ini
php调试没有效果怎么办?关闭opcache不使用系统缓存(图6-4)

效果对比

修改前后对比图:

php调试没有效果怎么办?关闭opcache不使用系统缓存 - opcache
php调试没有效果怎么办?关闭opcache不使用系统缓存(图6-5)

php调试没有效果怎么办?关闭opcache不使用系统缓存 - opcache_2
php调试没有效果怎么办?关闭opcache不使用系统缓存(图6-6)

结论

非常简单的就做到了关闭opcache,当调试完毕后,删除这个文件即可。是不是非常容易?更多php编程小技巧,请关注苏南大叔的博客内容:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    opcache

本站的忠实读者小伙伴,正在阅读下面这些文章: