问题

更新php文件后,文件不生效

今天在服务(Linux + Apache)上发布上线更新了php代码后,访问,服务器提示500错误。
然后访问系统入口文件index.php,断点调试,发现不能返回任何信息。
感觉,系统不会访问这个文件一样。
但是框架入口是index.php,apache解析默认访问此文件,不肯出现这种情况。
但是查看访问日志access.log和错误error.log日志,都有数据更新。
感觉很神奇,服务器接配置都没有任何修改。

排查

  1. 排查apache的访问控制,是正常的。
  2. 访问同级目录下静态文件,也是正常。
  3. 访问子目录下文件,如cn/index.php也是正常的。
  4. 重新Git发布代码,依然无法解决。

访问其他静态文件,如image都是正常情况,只有根目录index.php文件无法访问。调试很久,也无法解决。按照逻辑也无法解释。

解决

排查了2个小时,重新发布代码也无法解决。
后怀疑是否apace配置文件错误,限制了index.php访问。所以修改了配置文件后,重启服务sudo service httpd restart,结果就恢复了正常

原因

解决问题后,重新思考,才想到了问题所在。
php.ini设置 opcache.enable=0,有缓存,需要重启服务器。