【问题标题】:How to enable mysql on legacy PHP?如何在旧版 PHP 上启用 mysql?
【发布时间】:2019-03-02 04:14:58
【问题描述】:

我有无法升级的旧版软件,我需要 PHP 5.3 来使用 mysql_connect() 和 session_register() 等折旧函数。运行 Debian 9.5 和 lighttpd(必要时可以使用 Apache/nginx)

PHP 似乎没有安装 mysql 扩展:致命错误: Call to undefined function mysql_connect()

我下载并编译了 PHP 5.3,这里是 output of phpinfo()

我安装了 php5.6-mysql 和 php-mysql 但可能不兼容或未为 5.3 启用?安装的mysql版本是Ver 15.1 MariaDB

我不知道还能尝试什么或我能做什么,任何建议都将不胜感激

【问题讨论】:

  • 如果您有 5.6 的扩展,为什么不使用 PHP 5.6 并关闭弃用警告? (即使我建议重写应用程序以使用高级 PDO 或 MySQLi,但如果它不是一个选项......)
  • php5.6 的扩展不适用于 PHP5.3
  • @MagnusEriksson 5.6 不允许 session_register() 不幸的是,这是我的第一次冒险(当时 mysql 工作)。我不拥有源代码,也无权对其进行修改。
  • 您是否按照使用 mysql 编译的手册...? php.net/manual/en/mysql.installation.php
  • 您也可以尝试通过 Docker 运行它。

标签: php mysql


【解决方案1】:

尝试下载 php5-mysql 包并将其包含在加载的扩展中

这是 debian repo 中的链接... https://packages.debian.org/es/sid/php5-mysql

【讨论】:

  • 如何将它包含在加载的扩展中?我的系统上已经有 php5.6-mysql(假设这是你链接的),当我有 php5.6 但我需要 5.3 时它可以工作。不确定是否重要
  • 抱歉放弃我的回答。我正在谈论添加扩展名以防它丢失。对于 5.3, 编译时必须添加要包含的 mysql 的标志,如 dukevin 上面提到的。 ./configure --with-mysql=mysqlnd
【解决方案2】:

从@deceze 得到的答案是 php 5.3 没有与 mysql 一起打包,必须在编译时指定。 ./configure --with-mysql=mysqlnd

具体安装请参见:http://php.net/manual/en/mysql.installation.php

【讨论】:

    猜你喜欢
    • 2023-02-24
    • 2015-07-22
    • 2022-12-20
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2015-09-08
    • 2020-02-25
    相关资源
    最近更新 更多