【问题标题】:The program cannot start because php7.dll is missing from your computer程序无法启动,因为您的计算机中缺少 php7.dll
【发布时间】:2019-03-16 02:51:33
【问题描述】:

我正在尝试使用 PHP7 和 Apache 2.4 部署 OCI8。 该数据库不驻留在我的本地电脑中。它位于具有 Oracle 11g 企业版和 64 位架构的不同服务器上。

我无法使用以下设置在我的本地 PC 上加载 oci8

extension=php_oci8_11g.dll
extension_dir = c:\php\ext

系统变量中的path已正确更新为c:\php;

我已经仔细按照说明https://www.oracle.com/technetwork/articles/dsl/technote-php-instant-084410.html

我正在使用所有 64 位版本,因为我的电脑运行 64 位:

  1. mod_fcgid
  2. 即时客户端
  3. php7
  4. 阿帕奇 2.4

phpinfo() 在我的浏览器上完美显示,但没有显示 oci8 的表格。然后我在 cmd 中运行命令 php -m 以仔细检查状态,但我得到以下弹出窗口:

The program cannot start because php7.dll is missing from your computer.
Try reinstalling the program to fix the problem.

并且cmd窗口显示如下错误:

Warning: PHP Startup: Unable to load dynamic library 'php_oci8_11g'
(tried: C:\php\ext\php_oci8_11g (The specified module could not be
found.), C:\php\ext\php_php_oci8_11g.dll (The specified module could 
not be found.)) in Unknown on line 0

可能是什么问题?

【问题讨论】:

    标签: php apache oracle11g oci8


    【解决方案1】:

    我让它使用 extension=oci8_12c 代替。事实证明,即使我尝试连接的远程 Oracle 数据库是 11g 版本,最新的 oci8 版本也支持 11g。 这有效:https://www.oracle.com/technetwork/articles/dsl/technote-php-instant-12c-2088811.html

    【讨论】:

    • 如您所见,Oracle 具有客户端-服务器版本互操作性。 PHP OCI8 二进制文件需要与“客户端机器”(即安装 PHP 的机器)上的 Oracle 库版本相匹配。这些 Oracle 客户端库可以连接到各种不同的数据库版本。总之,Oracle Client 18 和 12.2 可以连接到 Oracle Database 11.2 或更高版本。 Oracle Client 12.1 可以连接到 Oracle Database 10.2 或更高版本。 Oracle Client 11.2 可以连接到 Oracle Database 9.2 或更高版本。
    猜你喜欢
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多