[英]Php.exe in CMD throws “Call to undefined function oci_connect()”
[英]php throws exception "Call to undefined function oci_connect()"
这是我的配置:Window Server 2016 build 14393
来自 phpinfo:
PHP 版本 8.1.5 架构 X64 服务器 API CGI/FastCGI 加载的配置文件:D:\php\php.ini(预期) PHP API:20210902 8832247898518109 扩展名:202
来自 php.ini extension=oci8_12c; 与 Oracle 数据库 12c 即时客户端一起使用
笔记:
这个 php.ini 文件适用于我的笔记本电脑和另一台 windows 16 服务器(均运行 Apache)。 在此服务器上,我们在 IIS 上运行 php
phpinfo 列表中缺少许多扩展部分,包括 oci8 和 odbc。
如果我执行 php --ri 我会收到一屏警告,例如:
PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (试过: d:\php\ext\curl (找不到指定的模块), d:\php\ext\php_curl.dll (找不到指定的模块)未找到))在第 0 行未知
但在我测试的每种情况下,指定文件夹中确实存在“丢失”dll。
从 d:\app\oracle\product\12.2.0\client_1\bin\tnsping.exe 执行 tnsping:
64 位 Windows 的 TNS Ping 实用程序:版本 12.2.0.1.0 - 2022 年 4 月 28 日 16:51:58 生产
路径的第一部分:
PATH=C:\Windows\system32\inetsrv;
D:\app\oracle\product\12.2.0\client_1\bin;
C:\Windows\system32;
我没有确定我的扩展未加载的根本原因。 但是,我能够让它们加载。 这是我所做的:
从 IIS fast-cgi 部分删除了 php-cgi 条目
从 IIS http-mapping 部分删除了 php-cgi 条目
删除了 d:\php 文件夹
从 IIS 管理器,添加 php 7.4(64 位)[平台管理器中可用的最新版本] 使用平台管理器
使用 IIS/PHP 管理器启用 OCI8_12c——此时,我的应用程序可以正常工作
将 php 8.15 解压缩到 d:\php
使用 IIS/PHP 管理器注册新版本,指向 d:\php\php-cgi.ee
使用 IIS/PHP 管理器启用 OCI8_19
重新启动 IIS - 现在我的应用程序在 IIS 下工作正常,php 8.15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.