我在用PHP连MySQL时,总是会弹出对话框提示httpd内存错误。使用VS调试输出的信息为:
httpd.exe 中的 0x0079ac5a 处未处理的异常: 0xC0000005: 读取位置 0x00000014 时发生访问冲突
  我使用的PHP版本为5.2.8,MySQL的版本为5.1.3.0,Apache的版本为2.2.11。
  我刚接触这些东西时间不长,实在是找不出问题出在哪了,希望各位高手能给些提示。

解决方案 »

  1.   

    如果楼主感兴趣,下载一个wamp组合装的,或者xampp也是 组合装的,我觉得挺好用的
      

  2.   

    这是Apache目录下logs/error.log中的记录:
    [Mon Jan 05 18:41:25 2009] [notice] Parent: child process exited with status 3221225477 -- Restarting.
    [Mon Jan 05 18:41:25 2009] [notice] Apache/2.2.11 (Win32) PHP/5.2.8 configured -- resuming normal operations
    [Mon Jan 05 18:41:25 2009] [notice] Server built: Dec 10 2008 00:10:06
    [Mon Jan 05 18:41:25 2009] [notice] Parent: Created child process 1376
    [Mon Jan 05 18:41:26 2009] [notice] Child 1376: Child process is running
    [Mon Jan 05 18:41:26 2009] [notice] Child 1376: Acquired the start mutex.
    [Mon Jan 05 18:41:26 2009] [notice] Child 1376: Starting 64 worker threads.
    [Mon Jan 05 18:41:26 2009] [notice] Child 1376: Starting thread to listen on port 80.顺便说一下,我的操作系统是WinXP SP3。发生内存错误的时候,我用其他的工具访问MySQL是可以的,没什么错误。为什么这个地方就内存错误呢。。
      

  3.   

    我用的Apache、PHP和MySQL都是前几天刚从官方网站上下载的,包括驱动在内的一些文件应该都是最新的。
      

  4.   

    看看Mysql的dll是不是坏了,重新安装PHP可能可以解决问题。
      

  5.   

    这个问题少见,通常PHP、Apache、MySQL都是很稳定的,应该说哪个文件损坏,或者不兼容。
      

  6.   

    部份PHP程序出错会令Apache出现内存错误
    你那log只显示Apache在重启
      

  7.   

    我把机器上的Apache和PHP卸了又重装了一遍,还是那个样子。我用的都是从官网上下载的最新版本的,按照 http://www.phpchina.com/html/81/n-13681.html 这上边的说明进行配置的。麻烦各位大侠再帮忙看一下,会不会是哪个地方配置的不对啊。。
      

  8.   

    该设置的我也都是设置了,PHP页面里只有这样的语句: mysql_connect('localhost','root','123456'); 但现在还是那样的内存错误。
    高手们难道都没遇到过这样的问题吗?帮帮我啊。。
      

  9.   

    在解决这个问题的过程中,我碰到了一个奇怪的现象,希望路过的高手能帮忙看一下,是什么原因。
    问题描述如下:
      我是在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。这个内存错误的问题虽然已经临时解决了,但我还是希望有高手能指导一下,为什么会出现这样的情况。。