【问题标题】:How to enable mysqli support for PHP's CLI如何为 PHP 的 CLI 启用 mysqli 支持
【发布时间】:2015-04-15 03:55:36
【问题描述】:

我正在使用 Ubuntu LTS 14.04 操作系统,我正在尝试在 PHP CLI 中测试我的 PHP 脚本,但是无论我的代码尝试连接到 MySQL 的任何位置,都使用诸如...之类的命令。

$mysqli = mysqli_connect($host,$user,$password,$database);  

...,我收到以下错误:

Fatal error: Call to undefined function mysqli_connect()...  

我查看了/etc/php5/cli/php.ini/etc/php5/apache2/php.ini 并没有发现任何区别。

我认为我必须启用 mysqli 对命令行界面 (CLI) 的支持,但我不确定。

如何在不影响当前 Apache php.ini/configuration/installation 的情况下更正错误?

编辑
基于cmets,我在终端运行了以下命令:

php --ini  

其中显示:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

然后,我将/etc/php5/cli/php.ini 复制到/usr/local/lib/php.ini

然后,我再次运行php --ini,显示:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

然后,我再次从 PHP CLI 运行 PHP 脚本,并显示相同的错误。

【问题讨论】:

标签: php linux apache mysqli


【解决方案1】:

调用未定义函数mysqli_connect()

表示未加载 mysqli 扩展。

我查看了 /etc/php5/cli/php.ini 和 /etc/php5/apache2/php.ini 并没有发现任何区别。

如果它们相同,我会感到非常惊讶。但在这两种情况下,这些都可能被构造为与通过包分发的扩展一起工作 - 即包含加载 mysqli 的指令的 ini 文件,因此扩展可能位于其他地方并包含(或不包含)这些文件。

配置文件(php.ini)路径:/usr/local/lib

你有一个科学怪人系统。你需要清理这个。使用发行版的打包应用程序或从 tarball 安装应用程序。除非您知道自己在做什么,否则不要使用 tarball。除非您真的知道自己在做什么,否则不要混搭。

  • 删除 tarball PHP 文件
  • 重新安装 Ubuntu PHP cli
  • 重新安装 Ubuntu PHP mysqli 扩展

【讨论】:

    【解决方案2】:

    test.php:

    if (!extension_loaded('mysqli'))  {
            dl('mysqli.so');
    }
    

    在cli中,运行它:

    php test.php

    操作系统输出:

    警告:dl(): 无法加载动态库 '/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mysqli' - /usr/local/lib/php/extensions/ no-debug-non-zts-20131226/mysqli:无法打开共享对象文件:test.php 中没有这样的文件或目录

    您可以从任何地方找到并复制 mysqli.so,例如: /usr/local/lib/php/extensions/no-debug-non-zts-20131226$ sudo cp /usr/lib/php5/20131226/mysqli.so ./mysqli.so

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-15
      • 2016-03-06
      • 2020-04-01
      • 2014-05-12
      • 2023-03-21
      • 1970-01-01
      • 2017-09-11
      • 1970-01-01
      相关资源
      最近更新 更多