PHP访问MySQL时出现httpd内存错误

我在用PHP连MySQL时,总是会弹出对话框提示httpd内存错误。使用VS调试输出的信息为:
httpd.exe 中的 0x0079ac5a 处未处理的异常: 0xC0000005: 读取位置 0x00000014 时发生访问冲突

 

在解决这个问题的过程中,我碰到了一个奇怪的现象,希望路过的高手能帮忙看一下,是什么原因。
问题描述如下:
  我是在Windows XP SP3下安装的Apache HTTP Server 2.2.11,PHP使用的版本是5.2.8,PHP和Apache结合使用的是LoadModule的方式,Apache的httpd.conf文件中的配置语句为
LoadModule php5_module D:/PHP/php5apache2_2.dll
并在后边加上了一句 PHPIniDir "D:/PHP"。

  按道理说,这么配置了以后,Apache启动加载的时候,就会到PHPIniDir指定的路径去寻找php.ini。Apache启动一切正常,我运行了一个php的探针页面,也都能正常显示。但phpinfo()显示的信息,却是这样的
Configuration File (php.ini) Path  C:\WINDOWS  
Loaded Configuration File  D:\PHP\php.ini  

  PHP配置文件的路径显示的竟然是C:\WINDOWS,但实际读取的配置文件却是对的,就是PHPIniDir设置的路径下的。我试着在注册表中添加HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath,指定路径为D:\PHP,但phpinfo()里面显示的路径还是C:\WINDOS。添加环境变量PHPRC,结果还是一样的。

  phpinfo()中显示的路径虽然不是我设定的那个,但一般的PHP页面还都是可以正常执行的,这说明php.ini是正确加载的。但在PHP中使用mysql_connect这一类方法访问MySQL数据库时,却总是弹出httpd的内错错误。我把PHP安装目录下的libmysql.dll和php5ts.dll两个dll文件拷贝到C:\WINDOS目录下后,内存错误的问题就没有了。看样子是Apache或PHP在Configuration File (php.ini) Path指定的路径中找不到那两个库文件,造成出现内存错误。

  我想请问各位高手,Configuration File (php.ini) Path的路径怎么设置?为什么我做了那些配置以后,这个值还是C:\WINDOWS,而且还能正确的从D:\PHP中加载php.ini。这个内存错误的问题虽然已经临时解决了,但我还是希望有高手能指导一下,为什么会出现这样的情况。。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值