Php 如何在macOS Mojave中使用XAMPP设置Oracle即时客户端?

Php 如何在macOS Mojave中使用XAMPP设置Oracle即时客户端?,php,oracle,terminal,xampp,Php,Oracle,Terminal,Xampp,我正在使用macOS,并已在我的系统上成功安装和设置XAMPP。但问题是,我想通过PHP轻松语法连接到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); } 但是我在运行页面时遇到了这个

我正在使用macOS,并已在我的系统上成功安装和设置XAMPP。但问题是,我想通过PHP轻松语法连接到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 instant client,但我真的不知道下载哪个版本的步骤,以及在xampp文件夹中解压文件的位置。在这方面我真的是个新手。

这就是我在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/
检查PHP版本时,
失败。。。未知选项:n
。PECL配置看起来不错,但一定与本机PHP版本有冲突

无论如何,OCI8稍微长一点的手动安装是可行的。说明如下

  • 我更喜欢使用最新的即时客户端,所以请下载最新的即时客户端 来自的客户端Basic和SDK包 并将其解压缩:

    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
    
  • 提取即时客户端(替换下载目录路径):

  • 您可以选择进行一些清理。摆脱旧的即时客户端:

    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}
    
  • 从和下载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
    
    在提示下,输入即时客户端目录的路径,如:

    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.
    
  • 现在,当您检查时,您应该看到OCI8部分

您可能对如何在macOS上“运行”Oracle DB感兴趣,这可以在VirtualBox VM中完成,如:。其他人使用Docker容器进行同样的操作

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.