php调试没有效果怎么办?关闭opcache不使用系统缓存
发布于 作者:苏南大叔 来源:程序如此灵动~为了加速php代码的执行速度,大家一般都开启了php的opcache
加速。但是,一旦开启了这个opcache
加速,就会有个副作用。那就是,你调试代码时,修改了一段代码,你急切地盼望看到效果时,但是服务器端就是不变化。死活都不变化,你无助地开始怀疑人生..... 苏南大叔的这个应用场景描述地还不错吧。就是这种无助和无奈。本文中,苏南大叔来教大家如何应对这种情况。
本文测试环境:centos
,php@72
。
需求描述
对于php
的opcache
,如果我们的网站不是在调试状态下面的话,这个opcache
还是挺有用的。毕竟可以加速网站的浏览速度,这事对于谁都是件好事。然而,调试的时候,这个就是不可接受的事情了。而一般要关闭这个opcache
需要修改php.ini
文件,而且要重启php-fpm
,而且影响是全局的,没有被调试的网站,也会失去opcache
的加速效果。这显然也不是我们希望看到的。
下图演示:可以通过宝塔面板,快速添加php72
的opcache
支持。
临时解决方案
苏南大叔在这里利用以前学习过的一个知识点,来临时关闭当前调试的网站的opcache
,这样就不会影响其他站点了。
过程非常简单,在被调试的网站根目录下面添加个.user.ini
就可以了。记得里面放置如下配置内容。
opcache.enable=0;
永久解决方案
当然,对于本地的php
调试环境来说,苏南大叔强烈建议大家永久关闭opcache
。默认情况下,php
的opcache
扩展,是默认开启的。关闭的方式就是:找到php.ini
中的opcache.enable
。然后取消注释,然后修改其值为0
即可。
opcache.enable=0;
如果您找不到您系统里面的php.ini
文件,那么,您可以参考下面这篇文章:
修改保存之后,重启php
生效。如果您的系统是mac
,您可能需要如下命令:
brew services restart php
另外,指的注意的是:opache
的具体配置信息,可能是在附加的.ini
文件中,并不在默认的php.ini
文件中。所以,如果您看到没有效果的话,这也许是个可行的思路。比如,在苏南大叔的系统中,存在着下面一个文件路径。
/usr/local/etc/php/7.2/conf.d/ext-opcache.ini
效果对比
修改前后对比图:
结论
非常简单的就做到了关闭opcache
,当调试完毕后,删除这个文件即可。是不是非常容易?更多php
编程小技巧,请关注苏南大叔的博客内容:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。