如题,在使用webman 1.3.9时,修改了控制器中的代码,在终端上也看到了:
xxx.php update and reload
Workerman[start.php] reloading
此时再调用控制器时,发现修改没有生效。
于是,Ctrl + C 关闭了 webman ,再以调试模式启动webman ,以便观察终端上的信息。但此法仍然没有作用。控制器执行的仍旧是修改前的逻辑。
在提交这个提问的过程中,又尝试了一次调用,发现执行的是修改后的逻辑,是因为webman缓存了代码文件么?如果是,怎样实现实时修改,立马生效呢?
猜测是你开启了php的opcache缓存
ps auxf 看下是不是启动了多个webman,导致请求到了老的webman服务器里。
还有部分用户是由于使用远程,代码没真正同步到服务器。
求教1个问题
使用webman,还有必要开启 opcache 吗?
如果使用了view模版,建议开启opcache,否则不用开。webman reload时会重置opcache,所以即使开启opcache对webman也没有副作用。
ps auxf 后,只看到一个运行的webman,在使用Think-template的web页面没有出现过本问题。出问题的位置是在controller的内部。