Apache 各种崩溃、错误情况手记

2009.12.18

以前初装Apache时,就碰到过在PHP中访问mySQL,就立即导致Apache没有任何征兆的崩溃。
那时就捣鼓了很长时间,最终发现是因为PHP目录下的libmysql.dll没有加载。于是最终解决方法是,将 D:\PHP 和 D:\PHP\ext 目录添加到WINDOWS的PATH里面(我不喜欢将libmysql.dll等文件拷贝到C:\WINDOWS\SYSTEM32目录的方法。总是感觉那样比较乱)。
重启之后PATH变量生效(这步很重要。因为你单单修改PATH,使用phpinfo()之后可以看到里面的$_SERVER["PATH"]并没有改变。重启Apache都没用)。一切功能恢复正常。

今天又再次碰到此错误,久思不得其解。在百度很久后,找到原因:
因为今天在安装RoR的时候,将 D:\Program Files\MySQL\MySQL Server 5.1\bin\ 下的libmysql.dll拷入了Ruby\bin目录下,然后我又把这个bin目录加入到了WINDOWS的PATH变量下。最后导致了这个莫名其妙的原因——PHP在使用mysql_xxx()的函数时,会需要加载libmysql.dll文件。但是加载时,它是逐个搜索PATH里面的目录,当搜索到Ruby\bin时,它发现了libmysql.dll之后,就不在继续搜索了。但是这个libmysql.dll(注意我装的mySQL是5.1版本,而且SERVER版的libmysql又不一样)与我的Apache(mySQL client版本原来是5.0)不兼容。于是问题就产生了。

知道原理之后就好办了。对PATH变量中的各个目录顺序进行调整。D:/PHP和D:/PHP/ext放在最前面,其次是D:/Ruby/bin,最后是D:\Program Files\MySQL\MySQL Server 5.1\bin\
重启问题解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值