[英]PHP 5.6 Oracle external authentication and OCI_CRED_EXT with PDO problem
[英]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
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.