PhpMyAdmin+Opcache出现无响应,500错误

来源:互联网 发布:java和python学那个好 编辑:程序博客网 时间:2024/04/29 09:25

我本地开发环境:
Windows7 x64
PHP 5.6.29 + Zend OPcache v7.0.6-dev + MySQL 5.7.17
PhpMyAdmin 4.6.5.2

打开 phpmyadmin 完全不能执行,Ajax加载全是500错误,根本没办法进入管理页面。

PhpMyAdmin+Opcache出现无响应,500错误

PhpMyAdmin+Opcache出现无响应,500错误

很是莫名其妙,记得昨天都还是好好的,于是开始排查,发现mysql是正常运行的,PHP也是正常运行的,其他所有都是正常运行,就是这个 phpmyadmin 有问题,当前下载的也已经是最新版本了。

于是折腾了好半天,实在是没办法,关键是没有任何错误信息输出,连个日志都没有,太让人郁闷了。

就要精神崩溃的时候想起了昨天测试性能开起了 opcache ,于是赶紧注释掉后重启,卧槽,世界一下清静了。。。一切恢复正常。实在让人好无语。。。

然后想着试试加个 opcache 的黑名单,把 phpmyadmin 目录给排除下,结果又郁闷了,发现黑名单是有效果的,但是 phpmyadmin 始终还是不能运行,估计是内部还有加在其他路径的代码,于是又折腾了好半天看了看源码,悲剧的是还是无解。。。实在是不想再浪费生命了。。一番折腾感觉差点吐血,只剩半条命了。。。实在没辙。放弃吧,只能把 opcache 关掉啦,就这样吧。。。希望能对后来的同学有点儿帮助就好。。。

另外贴上设置 opcache 黑名单的配置:

  1. 先新建一个 php_opcache_blacklist 文件(名字路径你随意,我这里只是举个例子),我这里文件没加后缀,有没有后缀最应该没关系的,C:/ProgramFiles(x86)/php_opcache_blacklist
  2. 将需要排除的目录绝对路径写进去,可以用通配符或文件前缀的形式,如:E:/Website/localhost/phpmyadmin/

参考PHP官方说明:
http://php.net/manual/zh/opcache.configuration.php#ini.opcache.blacklist-filename

打开 php.ini
搜索 blacklist_filename,设置为你的文件绝对路径就可以了,若没有则添加一条

[opcache]opcache.blacklist_filename="C:/ProgramFiles(x86)/php_opcache_blacklist"

然后重启 Apache

最后在不同路径下随便写个 php 代码对比验证下是否生效

0 0