繁体   English   中英

Oracle DB 的 PHP OCI8 不适用于 ZAEAZ63489CEE3AA9B36 上的 IIS (OCI_CRED_EXT)

[英]PHP OCI8 for Oracle DB does not work with IIS (OCI_CRED_EXT) on Windows

运行 PHP IIS 服务器。

错误使用未定义的常量 OCI_CRED_EXT - 假定为“OCI_CRED_EXT”(这将在 PHP 的未来版本中引发错误)

通过运行 php artiasan 服务到 Oracle 数据库的连接正在工作。

配置:

Windows 10 x64 专业版 20H2

手动安装 7.3 非线程安全 x86 添加路径到 env

IIS 服务器版本 10

Laravel 8

OCI 8.2.2 for WIndows 非线程安全 (NTS) x86 解压 C:\Program Files\786)\Php(X86)

作曲家安装 laravel-oci8

Instantclient-basic-nt-11.2.0.4.0 添加路径到 env

添加 php.ini 扩展:php_oci8.dll

命令 cmd

php --ri oci8

oci8

OCI8 支持 => 启用

OCI8 DTrace 支持 => 禁用

OCI8 版本 => 2.2.0

Oracle 运行时客户端库版本 => 11.2.0.4.0

Oracle 编译时即时客户端版本 => 10.2

指令 => 本地值 => 主值

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.events => 关闭 => 关闭

统计 =>

活动持久连接 => 0

活动连接 => 0

phpinfo不显示 oci8 模块。

error_log PHP Warning: PHP Startup: Unable to load dynamic library 'php_oci8.dll' (tried: C:\Program Files (x86)\Php(X86)\7.3\ext\php_oci8.dll (The specified module could not be found. ), C:\Program Files (x86)\Php(X86)\7.3\ext\php_php_oci8.dll.Z06416233FE5EC4C5933122E4AB2488 行中的未知(无法在 AF1 行中指定模块)

php_oci8.dll库存在于指定路径。

尝试检查即时客户端oracle,sqlplus连接到数据库。

阅读了很多信息,但我很难过如何前进。

您的配置没有选择 Instant Client。 它安装在哪里,您是否设置了 PATH? 也许您需要将库移动到 php dll 所在的位置?

我在https://blogs.oracle.com/opal/how-to-use-iis,-php-and-oracle有一些非常古老的笔记

此外,由于历史原因,Windows 不支持 OCI_CRED_EXT,请参阅https://github.com/php/php-src/blob/php-8.0.3/ext/oci8/oci8.c#L941-L948

你需要 OCI_CRED_EXT 做什么?

(你为什么要使用这么旧的 Oracle 客户端库, - 你应该能够放入更新的集合,因为它们保持兼容性)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM