如何在macOS Catalina或Big Sur上的PHP7.4上安装OCI8扩展?

如何在macOS Catalina或Big Sur上的PHP7.4上安装OCI8扩展?,php,oracle,macos-catalina,oci8,Php,Oracle,Macos Catalina,Oci8,我已经通过自制在Mac上安装了PHP7.4.11和Apache 2.4.46 然后安装了Oracle即时客户端和sqlplus(v19.3.0.0.0): 下一步是通过运行以下命令来安装OCI8扩展: pecl install oci8 PECL提示我: 请提供ORACLE_主目录的路径。使用 “instantclient,/path/to/instant/client/lib”,如果您使用 Oracle即时客户端[自动检测]: 我不确定这是什么/path/to/instant/client/

我已经通过自制在Mac上安装了PHP7.4.11和Apache 2.4.46

然后安装了Oracle即时客户端和sqlplus(v19.3.0.0.0):

下一步是通过运行以下命令来安装OCI8扩展:

pecl install oci8
PECL提示我:

请提供ORACLE_主目录的路径。使用 “instantclient,/path/to/instant/client/lib”,如果您使用 Oracle即时客户端[自动检测]:

我不确定这是什么
/path/to/instant/client/lib
,所以我运行了
locate sqplus

/usr/local/Cell/instantclient sqlplus /usr/local/Cell/instantclient sqlplus/19.3.0.0.0dbru /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/.brew /usr/local/ceral/instantclient-sqlplus/19.3.0.0.0dbru/.brew/instantclient-sqlplus.rb /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/INSTALL_receive.json /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/bin /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/bin/sqlplus /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/lib /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/lib/libsqlplus.dylib /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/lib/libsqlplusic.dylib /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/libexec /usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/libexec/sqlplus /usr/local/Homebrew/Library/Taps/instantclienttap/Homebrew instantclient/Formula/instantclient-sqlplus.rb /usr/local/bin/sqlplus/usr/local/lib/libsqlplus.dylib /usr/local/lib/libsqlplusic.dylib/usr/local/opt/instantclient sqlplus /usr/local/var/homebrew/linked/instantclient sqlplus

好的,让我们尝试以下两个目录:

/usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/lib

正在检查Oracle Oracle\u主安装目录。。。 /usr/local/Cell/instantclient sqlplus/19.3.0.0.0dbru/lib检查 甲骨文家庭图书馆有效性。。。配置:错误:Oracle库 在中找不到目录 /usr/local/Cell/instantclient sqlplus/19.3.0.0.0dbru/lib错误: `/private/tmp/pear/temp/oci8/configure --with-oci8=/usr/local/opt/php/bin/php-config=/usr/local/ceral/instantclient sqlplus/19.3.0.0.0dbru/lib'失败

/usr/local/lib/

正在检查Oracle即时客户端目录/usr/local/lib/checking Oracle即时客户端SDK头目录。。。配置:错误:Oracle 未找到即时客户端SDK头文件错误: `/private/tmp/pear/temp/oci8/configure --如果php-config=/usr/local/opt/php/bin/php-config--with-oci8=instantclient,/usr/local/lib/'失败

/path/to/instant/client/lib产生了与前者相同的错误


那么正确的是什么呢?

我个人会安装新的。下载页面和软件包包含说明。另请参见中的步骤。安装Basic和SDK软件包——如果您也需要,还可以安装SQL*Plus。在PECL提示符下给出的路径是/Users/yourname/Downloads/instanclient_19_8,但如果您想将该目录放在其他地方,可以将其移动


可能是brew软件包将头文件放在OCI8安装脚本不知道的位置。通过使用DMGs,可以找到标题。

很抱歉回复太晚。在升级到Big-Sur(并将PHP升级到v8)之后,您的建议就行了。我下载的包是:basic、sqlplus、sdk、jdbc和odbc。我想我编译失败的原因是我忘记下载sdk文件,这是构建PHP扩展所必需的。谢谢确认。对于未来的读者:要使用PHP OCI8或PDO_OCI,您不需要jdbc、odbc或sqlplus包(尽管后者对于一般的特殊SQL查询很有用)。
pecl install oci8