05.php_pdo引用不恰当libmysql.dll导致Apache崩溃

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

05.php_pdo引用不恰当libmysql.dll导致Apache崩溃

郑昀 2010 隶属于《07.杂项》小节

现象

在测试环境Windows XP/2003+PHP v5.2.14+Apache v2.2下,使用php_pdo对象试图连接 MySql 数据库服务时,apache的error.log中什么也没报告,httpd.exe 二话不说径直崩溃。

在 php.ini 中注释掉 extension=php_pdo.dll 后,Apache则不再崩溃。

 

解决方法

该环境在 %SYSTEM32% 目录下,曾放置过一个 libmysql.dll 。

经测试,Apache加载的是此路径下的 libmysql.dll 。

由于 libmysql.dll 文件并没有列出版本号,所以只能通过文件大小来判断是哪一个版本的。

一般,PHP v5.2.14自带的 libmysql.dll 文件大小是2,076KB。

MySql v5.0 自带的则是1,531KB。

MySql v5.5 Cluster自带的是2,703KB。

MySql v5.5 自带的是4,168KB,并且已经有了版本号:5.5.5.0。

怀疑该环境 %SYSTEM32% 目录下的 libmysql.dll 文件与Apache v2.2+PHP v5.2.14不兼容,所以用PHP自带的 libmysql.dll 文件替换,遂成。

 

参考说法

http://bugs.php.net/bug.php?id=46289 BUG报告道:

[2009-06-22 01:53 UTC] ramin dot farmani at gmail dot com

Hi

similarly my httpd.exe crashed when i runnig a site wroten by Yii framework it's seem we have a big problem in php_pdo_mysql library I using php 5.2.10

[2009-09-02 01:07 UTC] Parad0X dot UA at gmail dot com

I was able to fix this by removing MYSQL from Windows' PATH env setting. Looks like when PHP is looking for libmysql.dll it uses the first one it finds in mysql\bin and it's not quite compatible.

Or you can try to add php to the path before mysql.

I hope that helps.

【注:此处建议,在系统变量PATH中,把PHP的目录放在MySql\bin目录前。】

[2009-09-02 07:45 UTC] pajoye@php.net

Ok, it was then the classic case where MySql's libmysql DLL was used instead of the version bundled with PHP. We already have many bogus reports about this issue and your solution is the right one (as explain in the other reports).

【注:此处认为这是一个经典的场景,把MySql自带的libmysql替换PHP自带的,导致不兼容悲剧。】

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
Ubuntu Apache PHP
解决Ubuntu下Apache不解析PHP问题
解决Ubuntu下Apache不解析PHP问题
200 5
|
PHP Apache
PHP环境搭建(配置php模块到apache服务器)
PHP环境搭建(配置php模块到apache服务器)
169 0
|
Apache PHP 数据安全/隐私保护
(MAC)PHP Apache 安装与配置
(MAC)PHP Apache 安装与配置
534 0
|
缓存 前端开发 JavaScript
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
596 0
|
6月前
|
Ubuntu PHP
Ubuntu下使用apt为Apache2编译PHP7.1
以上就是在Ubuntu系统下,使用apt为Apache2编译PHP7.1的过程。希望这个过程对你有所帮助,如果你在执行过程中遇到任何问题,都可以在网上找到相关的解决方案。
114 25
|
6月前
|
Ubuntu PHP Apache
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
144 28
|
11月前
|
数据库连接 PHP Apache
PHP在Apache中如何运行?
PHP在Apache中如何运行?
370 5
|
关系型数据库 MySQL 应用服务中间件
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
这篇文章介绍了如何在Windows 7系统上搭建PHP、MySQL和Apache环境,并部署ECShop项目,包括安装配置步骤、解决常见问题以及使用XAMPP集成环境的替代方案。
177 1
win7系统搭建PHP+Mysql+Apache环境+部署ecshop项目
|
域名解析 Apache PHP
PHP Apache - 多站点虚拟主机配置
PHP Apache - 多站点虚拟主机配置
574 0
|
关系型数据库 Linux 网络安全
"Linux系统实战:从零开始部署Apache+PHP Web项目,轻松搭建您的在线应用"
【8月更文挑战第9天】Linux作为服务器操作系统,凭借其稳定性和安全性成为部署Web项目的优选平台。本文以Apache Web服务器和PHP项目为例,介绍部署流程。首先,通过包管理器安装Apache与PHP;接着创建项目目录,并上传项目文件至该目录;根据需要配置Apache虚拟主机;最后重启Apache服务并测试项目。确保防火墙允许HTTP流量,正确配置数据库连接,并定期更新系统以维持安全。随着项目复杂度提升,进一步学习高级配置将变得必要。
899 0

热门文章

最新文章