首页 > MySQL, PHP > PHP has encountered an Access Violation at 0142AC6A 错误解决

PHP has encountered an Access Violation at 0142AC6A 错误解决

这个是PHP的一个常见错误,我是在安装wordpress的时候遇到的,很多在Windows上面跑PHP的朋友都见过,也有人写了各种各样的解决办法。但是都是几年以前的解决办法。我觉老办法不一定能解决当前的问题,我遇到的这个问题就是。

我遇到的这个问题的解决相当偶然,一年以前就是就是这个问题促使我从wordpress转换成BlogEngine.NET上面,今年想用wordpress的时候又出问题来了。当时由于用的Windows 2008 x64,所以我把问题归于PHP不支持64位的IIS,但是现在我已经换成x86的Windows 2003还有这个问题就说不过去了。我于是试着把PHP的扩展都去掉,发现错误信息变成了没有找到mysql的支持库。

于是问题简单了,检查发现php 5.2.13里面的libmysql.dll明显比机器上面的mysql版本旧的多,显然错误出现是由于php 5.2.13在build时候引用的libmysql和机器上引用libmysql的不一致。我们观察系统的path路径以后,发现我在安装的mysql的时候选择了将mysql的路径加入到path当中,这样mysql的libmysql会优先于php目录下面的libmysql加载,于是造成了问题。

image

明白来原因那么解决问题的方法也简单了,在path中也加入php的路径,并放到mysql的路径之前。重新启动iis以后,这个问题就不再出现了。

分类: MySQL, PHP 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.