opcache导致更新php代码不生效
问题
更新php文件后,文件不生效
今天在服务(Linux + Apache)上发布上线更新了php代码后,访问,服务器提示500错误。
然后访问系统入口文件index.php
,断点调试,发现不能返回任何信息。
感觉,系统不会访问这个文件一样。
但是框架入口是index.php
,apache解析默认访问此文件,不肯出现这种情况。
但是查看访问日志access.log
和错误error.log
日志,都有数据更新。
感觉很神奇,服务器接配置都没有任何修改。
排查
- 排查apache的访问控制,是正常的。
- 访问同级目录下静态文件,也是正常。
- 访问子目录下文件,如
cn/index.php
也是正常的。 - 重新Git发布代码,依然无法解决。
访问其他静态文件,如image都是正常情况,只有根目录index.php
文件无法访问。调试很久,也无法解决。按照逻辑也无法解释。
解决
排查了2个小时,重新发布代码也无法解决。
后怀疑是否apace配置文件错误,限制了index.php
访问。所以修改了配置文件后,重启服务sudo service httpd restart
,结果就恢复了正常
原因
解决问题后,重新思考,才想到了问题所在。
php.ini设置 opcache.enable=0,有缓存,需要重启服务器。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 螃蟹壳!