027-87227388

php使用MySql函数导致Apache(iis)崩溃的问题

发布时间:2013-03-08 浏览:3341

这个问题是在Windows下配置PHP环境时发生的。

具体的表现是php运行正常,但是只要一调用MySql的相关函数,Apache就会崩溃掉。

环境配置方式:

php以模块的方式运行在Apache下。自定义php.ini路径

phpinfo()显示mysql库加载成功

崩溃后在Windows的错误日志中会留下以下内容:

错误应用程序 httpd.exe,版本 2.2.11.0,错误模块 php5ts.dll,版本 5.2.10.10,错误地址 0x0000ac6a。

上google查了很久也不知道是怎么回事,国外也有人遇到同样的问题,但是没有解决方法,后来无意中看到phpinfo中MySql库的版本居然是5.1.30,这才想到原因,分析如下:

我在安装MySql的时候在配置设定时把MySql的Bin目录放到了系统环境变量Path中。而Bin目录中正好有一个libmysql.dll的库。

而php在加载mysql库的时候会搜索系统环境变量Path每一个目录寻找libmysql.dll,由于mysql的bin目录也在其中,那么php就先把mysql的libmysql.dll加载了。所以就会由于库的兼容问题导致mysql的函数无法运行。

解决方案:

1.将mysql的bin目录从系统环境变量Path中移出或将libmysql.dll从MySql的bin目录中移出。

2.重起系统