【问题标题】:How to setup Oracle Instant Client with XAMPP in macOS Mojave?如何在 macOS Mojave 中使用 XAMPP 设置 Oracle Instant Client?
【发布时间】:2020-12-17 00:34:25
【问题描述】:

我正在使用 macOS 并已在我的系统上成功安装和设置 XAMPP。但问题是我想通过 PHP Easy Syntax 连接到 oracle 数据库,如下所示:

$conn = oci_connect('xx', 'xx', '123.123.xxx.x/xxxx');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

但我在运行页面时收到此错误

Call to undefined function oci_connect()

在阅读了一些文章后,我发现我必须安装 oracle 即时客户端,但我真的不知道下载哪个版本的步骤以及将文件解压缩到 xampp 文件夹中的位置。我真的是这方面的新手。

【问题讨论】:

    标签: php oracle terminal xampp


    【解决方案1】:

    这就是我在 macOS Mojave 上所做的。我使用了本地安装程序 XAMPP 7.4.9 xampp-osx-7.4.9-0-installer.dmg。我使用开发人员文件进行了基本安装 已选择选项 - 这是默认设置。

    似乎 XAMPP for macOS 没有构建 OCI8 扩展。 (我注意到 从 xampp-osx-7.4.9-0-vm.dmg 安装的 XAMPP VM 也没有 OCI8 扩展,但我还没玩过。)

    遗憾的是,使用pecl 命令安装 OCI8 的“明显”方法失败 正确找到正确的 PHP 版本。例如。运行:

    sudo /Applications/XAMPP/xamppfiles/bin/pecl install oci8
    

    并回答:

    instantclient,/Applications/XAMPP/xamppfiles/lib/instantclient-11.2.0.3.0/
    

    checking PHP version... Unknown option: n 失败。 PECL 配置看起来不错,但肯定与原生 PHP 版本有冲突。

    无论如何,OCI8 的手动安装时间稍长一些。说明如下。

    • 我更喜欢使用更新的 Instant Client,所以请下载最新的 Instant Client Basic 和 SDK 包来自 here 并解压:

      cd $HOME/Downloads
      curl -O https://download.oracle.com/otn_software/mac/instantclient/instantclient-basic-macos.zip
      curl -O https://download.oracle.com/otn_software/mac/instantclient/instantclient-sdk-macos.zip
      
    • 提取 Instant Client(替换您的下载目录路径):

      cd /Applications/XAMPP/xamppfiles/lib
      sudo unzip /Users/cjones/Downloads/instantclient-basic-macos.zip
      sudo unzip /Users/cjones/Downloads/instantclient-sdk-macos.zip
      
    • 您可以选择进行一些清理。摆脱旧的 Instant Client:

      sudo rm -rf /Applications/XAMPP/xamppfiles/lib/instantclient-11.2.0.3.0
      

      并删除 OCI8 不需要的新库:

      sudo rm -f /Applications/XAMPP/xamppfiles/lib/instantclient_19_3/{*jdbc*,*occi*,*mysql*,*jar,uidrvci,genezi,adrci}
      
    • PECL 下载 OCI8 扩展,然后 提取它:

      cd $HOME/Downloads
      curl -O https://pecl.php.net/get/oci8-2.2.0.tgz
      tar -xzf oci8-2.2.0.tgz
      
    • 构建并安装 OCI8。您将需要某种可用的编译器;我已经安装了 XCode:

      cd oci8-2.2.0
      /Applications/XAMPP/xamppfiles/bin/phpize
      ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config --with-oci8=shared,instantclient,/Applications/XAMPP/xamppfiles/lib/instantclient_19_3
      make
      sudo make install
      
    • 然后,告诉 XAMPP 启用扩展:

      sudo /Applications/XAMPP/xamppfiles/xampp oci8
      

      在提示符处,输入 Instant Client 目录的路径/Applications/XAMPP/xamppfiles/lib/instantclient_19_3,如:

      Please enter the path to your Oracle or Instant Client installation:
      [/Applications/XAMPP/xamppfiles/lib/instantclient-11.2.0.3.0] /Applications/XAMPP/xamppfiles/lib/instantclient_19_3
      installing symlink...
      patching php.ini...
      OCI8 add-on activation likely successful.
      XAMPP: Stopping Apache...ok.
      XAMPP: Starting Apache...ok.
      
    • 现在,当您检查 http://localhost/dashboard/phpinfo.php 时,您应该会看到 OCI8 部分。

    您可能对如何在 macOS 上“运行”Oracle DB 感兴趣,这可以在 VirtualBox VM 中完成,例如:https://blogs.oracle.com/opal/the-easiest-way-to-install-oracle-database-on-apple-mac-os-x。其他人使用 Docker 容器来做同样的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-29
      • 1970-01-01
      • 2014-10-18
      • 2019-03-11
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多