PHP 警告:PHP 启动:无法加载动态库“oci8_12c”

问题描述

我正在尝试在 PHP 8.0.7 中使用 oci8_12c 启用 Instant client 12.2 扩展。在 windows x64 上

  1. 我已在 PHP.ini 文件中取消注释 extension=oci8_12c
  2. 下载了 PHP_oci8-3.0.1-8.0-ts-vs16-x64文件并将其放置在我的 C:\xampp\PHP\ext 文件夹中
  3. 下载了 instantclient-basic-windows.x64-12.2.0.1.0.zip 文件并解压到 C:\Oracle\instantclient_12_2添加到了 PATH。
  4. Microsoft Visual Studio 2013 Redistributable.下载并安装vcredist_x64.exe
  5. 重新启动了我的电脑。

但是当我在我的 cmd 中运行 PHP --ini 时。我收到以下警告:

PHP Warning:  PHP Startup: Unable to load dynamic library 'oci8_12c' (tried: C:\xampp\PHP\ext\oci8_12c (The specified module Could not be found),C:\xampp\PHP\ext\PHP_oci8_12c.dll (The specified module Could not be found)) in UnkNown on line 0

Warning: PHP Startup: Unable to load dynamic library 'oci8_12c' (tried: C:\xampp\PHP\ext\oci8_12c (The specified module Could not be found),C:\xampp\PHP\ext\PHP_oci8_12c.dll (The specified module Could not be found)) in UnkNown on line 0
Configuration File (PHP.ini) Path: 
Loaded Configuration File:         C:\xampp\PHP\PHP.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

phpinfo() screenshot

解决方法

经过 3 天的尝试和失败 我找到了 Daniel Opitz 的 article

我在问题帖子中遗漏的步骤是

Copy all *.dll files: to c:\xampp\php

Copy all *.dll files to c:\xampp\apache\bin (We need a second copy here for apache)

就是这样!!将 .dll 文件添加到我的 root php 和 apache 后,警告已解决。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...