资讯专栏INFORMATION COLUMN

macOS Mojave 安装 PHP OCI8/PDO_OCI

mindwind / 1991人阅读

摘要:前面和网上说的都差不多和编译安装类似,去下载如下的安装包可以选择版本,我这里选择的是由于开启了基本上所有的操作都需要在目录下进行解压设置环境变量默认都会解压到目录下网上的资料都是表示这个

前面和网上说的都差不多(和 Linux 编译安装类似),去 Oracle 下载如下的安装包(可以选择版本,我这里选择的是 12.2)

instantclient-basic-macos.x64-12.2.0.1.0-2.zip

instantclient-sdk-macos.x64-12.2.0.1.0-2.zip

instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip

由于 macOS 开启了 SIP 基本上所有的操作都需要在 /usr/local/ 目录下进行

解压:

sudo unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
sudo unzip instantclient-sdk-macos.x64-12.2.0.1.0-2.zip -d /usr/local/
sudo unzip instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip -d /usr/local/

# 设置环境变量
vim ~/.bash_profile
export LD_LIBRARY_PATH="/usr/local/instantclient_12_2"
默认都会解压到 /usr/local/instantclient_12_2 目录下

网上的资料都是表示这个时候直接使用 pecl install oci8,而实际上 macOS 默认并没有安装这个命令;这个时候也没有安装 Homebrew

所以我先安装 Pear,先是参考这篇文章

http://www.mayanlong.com/archives/2018/pear.html

发现有些地方因为 SIP 开启的原因无法通过,进而查看了官方文档

https://pear.php.net/manual/en/installation.getting.php 参考了 Mac OSX 那节的内容

curl -O https://pear.php.net/go-pear.phar
php -d detect_unicode=0 go-pear.phar

以下摘录于官方文档

You"re now ready to configure PEAR for installation.

First you need to change the Installation Base.

So type 1, and then press Enter.

Enter /usr/local/pear

Press Enter.

Then, you will need to change the Binaries directory.

Type 4, and then press Enter.

Enter /usr/local/bin

Press Enter.

到这里基本上可以使用 pecl 了,执行如下命令

sudo pecl install oci8

运行安装表示还是会报错缺失 PHP_AUTOCONF 未配置; 查询之后得知需要安装 autoconf 并且不建议直接安装(说是太多依赖,我没有验证),应该使用 Homebrew

安装 Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

由于众所周知的原因, 慢如蜗牛; 于是查询解决方案, 参考如下

macOS系统下安装Homebrew

实际上有些地方是不一致的,比如文中提到的没有的变量再接下来的 homebrew-core 的 clone 中无法生效,导致这个仓库会非常慢,暂时也没有得到什么解决方案

按照完成之后再将几个地址换成国内的镜像,如文中所述

之后直接运行命令 brew install autoconf

默认在命令行中 brew 是没有提示的,那么可以参考官方文档 https://docs.brew.sh/Shell-Completion 进行设置,开启提示

然后再次运行,应该就可以安装了

sudo pecl install oci8

然后重启 Apache sudo apachectl restart,通过访问有 phpinfo(); 的页面去确认。

这个时候一般 OCI8 是安装好了,可是项目需要的是 PDO_OCI,使用老的办法炮制 sudo pecl install pdo_oci 发现安装不了,说没有这个库,或者是要求 PHP 版本小于 6

这个时候只能通过编译源码中的扩展来实现(这些步骤和在 Ubuntu 下编译就是一模一样的了)

查看 PHP 版本 php -v 得到版本 7.1.23 那么去 PHP 官网下载对应版本的源码 https://www.php.net/releases/

解压到方便操作的地方,比如我放在桌面

进入目录后进入 ext/pdo_oci/

将命令行切换到这个目录,然后运行 phpize

./configure --with-pdo-oci=instantclient,/usr/local/instantclient_12_2,12.2
make

# 这里会报安装失败,原因是无法创建目录由于 SIP 的原因
sudo make install

由于 SIP 的原因到这一步就无法再继续了,只能够关闭 SIP,而关闭 SIP 需要重启按住 cmd + R 然后再菜单栏中打开终端

# 关闭 SIP
csrutil disable

# 重启
reboot

然后进入系统之后再次编译安装即可成功(可以选择是否恢复 SIP,重启并设置 csrutil enable

最后配置 php.ini

extension = pdo_oci.so

再重启 Apache sudo apachectl restart,再次访问项目,已经可以正常打开

到这里目的已经达成了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35379.html

相关文章

  • Centos下PHP7.1打开Oracle扩展

    摘要:背景最近因为项目研究了一下集成,虽然这个组合很奇葩,但万一用到请勿采坑环境安装组件下载两个都必须安装,版本就是安装安装成功会生成如下目录,位系统必须软连接成旧版否则编译报版本不支持的错,应该是历史问题,坑 背景 最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~ 环境 CentOS Linux release 7.3.1611 (Core) PHP...

    mmy123456 评论0 收藏0
  • Centos下PHP7.1打开Oracle扩展

    摘要:背景最近因为项目研究了一下集成,虽然这个组合很奇葩,但万一用到请勿采坑环境安装组件下载两个都必须安装,版本就是安装安装成功会生成如下目录,位系统必须软连接成旧版否则编译报版本不支持的错,应该是历史问题,坑 背景 最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~ 环境 CentOS Linux release 7.3.1611 (Core) PHP...

    alphahans 评论0 收藏0
  • Centos下PHP7.1打开Oracle扩展

    摘要:背景最近因为项目研究了一下集成,虽然这个组合很奇葩,但万一用到请勿采坑环境安装组件下载两个都必须安装,版本就是安装安装成功会生成如下目录,位系统必须软连接成旧版否则编译报版本不支持的错,应该是历史问题,坑 背景 最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~ 环境 CentOS Linux release 7.3.1611 (Core) PHP...

    Forest10 评论0 收藏0
  • Centos下PHP7.1打开Oracle扩展

    摘要:背景最近因为项目研究了一下集成,虽然这个组合很奇葩,但万一用到请勿采坑环境安装组件下载两个都必须安装,版本就是安装安装成功会生成如下目录,位系统必须软连接成旧版否则编译报版本不支持的错,应该是历史问题,坑 背景 最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~ 环境 CentOS Linux release 7.3.1611 (Core) PHP...

    zhaochunqi 评论0 收藏0
  • Centos下PHP7.1打开Oracle扩展

    摘要:背景最近因为项目研究了一下集成,虽然这个组合很奇葩,但万一用到请勿采坑环境安装组件下载两个都必须安装,版本就是安装安装成功会生成如下目录,位系统必须软连接成旧版否则编译报版本不支持的错,应该是历史问题,坑 背景 最近因为项目研究了一下PHP集成Oracle,虽然这个组合很奇葩,但万一用到请勿采坑~ 环境 CentOS Linux release 7.3.1611 (Core) PHP...

    oneasp 评论0 收藏0

发表评论

0条评论

mindwind

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<