MySQL 4.0、PHP 5.3 和 Server 2008

MySQL 4.0、PHP 5.3 和 Server 2008

我一开始就知道这两个版本不能很好地协同工作,但奇怪的是,XAMPP 却允许这种情况发生。我们有一台运行 XAMPP 的机器,它以某种方式(超出了我的理解)允许 PHP 5.3.1 与 MySQL 4.0.18 数据库通信。我们尝试复制此设置(不包括 XAMPP)并在新机器上安装相同版本的 Apache、MySQL 和 PHP,但从逻辑上讲,我们无法绕过以下错误消息:

警告:mysql_connect():不支持连接到 3.22、3.23 和 4.0。服务器是 4.0.18-max-debug,位于 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\nktest.php 第 3 行 警告:mysql_connect():不支持连接到 3.22、3.23 和 4.0 服务器,位于 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\nktest.php 第 3 行 失败:不支持连接到 3.22、3.23 和 4.0 服务器

不幸的是,我们只能使用 MySQL 4.0.18,因为我们在该机器上运行的应用程序需要它,并且附带一个预构建版本。我们还需要使用 PHP 5.3,因为另一个软件包依赖于它,所以我们陷入了困境。我试图弄清楚 XAMPP 在幕后做了什么来使所有这些工作正常进行,但我似乎无法理解。

简而言之,有人知道在 Windows Server 2008 机器上启用与 MySQL 4.0.18 数据库和 PHP 5.3.1 连接的方法吗?应用程序需要访问所有标准 MySQL 库函数,即 mysql_connect(),因此严格使用 mysqli 不是一个选项。

答案1

XAMPP 进行了一些黑客攻击,这些攻击在面向 Web 的服务器上运行并不严格安全,因此无法实现

有什么原因导致您无法在系统上运行 2 个 php 二进制文件,并为需要 mysql4 db 的站点调用旧版本?还有什么原因导致无法升级或替换预构建版本?应用程序肯定可以脱离数据库,这样就不需要自己的预构建版本了?

另一个选择是将 mysql4 应用程序放在服务器上的 VM 上,以运行旧版本的 php,然后您可以为其他网站运行最新版本的 mysql 和 php

答案2

我们最终通过以下两件事实现了这一目标:

1)使用 --disable-mysqlnd 标志在 Windows 上编译 PHP 5.3.1 2)从编译中省略 mysqli。

PHP 5.3.1 目前正在与 MySQL 4.018 对话,唷。

相关内容