【问题标题】:extension enabled in CLI but not in PHPinfo在 CLI 中启用了扩展但在 PHPinfo 中未启用
【发布时间】:2019-04-23 22:45:13
【问题描述】:

我正在尝试启用扩展 oci8

我在 php.ini 中取消了它的注释并为其添加了所需的文件(oracle 即时客户端)。

现在从 CMD 输入:php --ri oci8,它显示:

oci8

OCI8 支持 => 启用 OCI8 DTrace 支持 => 禁用 OCI8 版本 => 2.1.8 修订版 => $Id: 4543974aab26d8a3d85257ab18d0dca4503ff9e7 $ Oracle 运行时客户端库版本 => 12.1.0.2.0 Oracle 编译时即时客户端版本 => 12.1

指令 => 本地值 => 主值 oci8.max_persistent => -1 => -1 oci8.persistent_timeout => -1 => -1 oci8.ping_interval => 60 => 60 oci8.privileged_connect => 关闭 => 关闭 oci8.statement_cache_size => 20 => 20 oci8.default_prefetch => 100 => 100 oci8.old_oci_close_semantics => 关闭 => 关闭 oci8.connection_class=> 无价值 => 无价值 oci8.events => 关闭 => 关闭

统计 => 活动持久连接 => 0 个活动连接 => 0

所以它应该可以正常工作。 但是当我尝试从 php 连接到 oracle 时出现错误:

调用未定义的函数 Yajra\Pdo\oci_connect()

我打开 PHPINFO 页面,搜索 oci8,显示它已启用必须存在的块不存在。

可能是什么问题? 我在 Windows 10 上使用 xampp 7.2

【问题讨论】:

  • 快速说明 - cli 和 web 有时会有不同的 php.ini 文件。由于您使用的是 XAMPP,我想这更有可能再次发生。我不熟悉 XAMPP,但请检查是否有配置编辑器允许您检查该环境的 php.ini
  • 使用来自 web 的 echo phpinfo(),并查看此参数“配置文件 (php.ini) 路径”、“加载的配置文件”、“扫描此目录以获取其他 .ini 文件”、“额外的 .ini 文件解析”,它们可以帮助您了解 .ini 文件的位置

标签: php


【解决方案1】:

您必须编辑显示在 phpinfo ("Loaded Configuration File") 选项中的 php.ini 文件,并且还需要重启 apache 才能使其工作。

【讨论】:

  • 在 phpinfo 中,我看到:(配置文件 (php.ini) 路径 C:\Windows -- 加载的配置文件 D:\xampp\php\php.ini)我在 c:\\ 中搜索windows,并没有在其中找到 php.ini。据说要加载的另一个文件是我已经在其中进行了修改的文件。我已经重新启动了 apache。
【解决方案2】:

解决了。

这是我的电脑需要重新启动,而不仅仅是 Apache for PHP web 来加载新的环境变量,这对于定位 PHP 扩展 OCI8 所需的 oracle 即时客户端很重要。

奇怪的是 PHP CLI 加载了新的环境变量,但是 PHP web 没有加载它,尽管 Apache 重新启动了。 我从 PHPinfo 页面注意到了这一点,该页面显示加载的环境变量,显示添加 oracle 之前的旧变量。

所以刚刚重新启动了我的电脑,现在一切正常。 谢谢你的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2016-11-05
    • 2020-04-02
    • 2013-02-22
    • 1970-01-01
    相关资源
    最近更新 更多