mac安装oci8扩展(orache扩展)+连接oracle数据库并使用

本文提供了一步一步的指导,帮助读者在Mac系统中安装Oracle客户端及PHP OCI8扩展。首先介绍如何从Oracle官网下载客户端,并进行必要的配置;接着通过PECL安装OCI8扩展并配置PHP环境;最后演示了如何使用PHP连接Oracle数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装oracle客户端

官网网址:http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html

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(这个是用来独立连接数据库,可以不下载)

下载后把这三个包里的内容都解压放到一个目录下,假设是/usr/local/instantclient,然后建立几个符号链接,之后的编译和最后生成的oci8.so文件会用到:

ln -s /usr/local/instantclient/libclntsh.dylib.12.1 /usr/local/instantclient/libclntsh.dylib

ln -s /usr/local/instantclient/libclntsh.dylib.12.1 /usr/local/lib/

ln -s /usr/local/instantclient/libnnz12.dylib /usr/local/lib/

ln -s /usr/local/instantclient/libocci.dylib.12.1 /usr/local/lib/

ln -s /usr/local/instantclient/libociei.dylib /usr/local/lib/

注意:其中第一个符号链接如果不建立,编译的时候会出错。中间两个符号链接如果不建立,oci8.so会加载失败,提示找不到对应的dylib文件。后面两个符号链接如果不建立,今后在执行PHP的过程中oci_connect()函数会抛异常。如果今后依然遇到其他失败的信息,则以此类推,将instantclient目录下的dylib文件都在/usr/local/lib下建立符号链接即可。如果想简单粗暴一些,那也可以把instantclient下的dylib文件都拷贝到/usr/local/lib下

二、pecl快捷安装oci8

sudo pecl install oci8


在提示输入instantclient目录位置的地方,输入instantclient,/usr/local/instantclient


根据提示,在/usr/local/etc/php/7.1/conf.d/目录下手工建一个ext-oci8.ini文件。如果没有conf.d这个文件夹则手动创建

cd /usr/local/etc/php/7.1

mkdir -p conf.d

cd conf.d

cat > ext-oci8.ini
[oci8]
extension="/usr/local/Cellar/php71/7.1.13_24/lib/php/extensions/debug-non-zts-20160303/oci8.so"
然后在php7.1的配置文件php.ini(/usr/local/etc/php/7.1/php.ini)里面添加扩展
extension=oci8.so;
然后,php -m 能看到oci扩展,但是<? echo phpinfo(); ?>  还是看不到,通过php-fpm.restart重启php-fpm就可以了,因为我之前brew安装了php7.0,后来brew又安装php7.1的。之前安装php7.0在~/.bash_aliases里配置的php-fpm的start、stop、restart是针对php7.0的,现在要给php7.1的也添加一个php-fpm的3种命令切换
vim ~/.bash_aliases


#让快捷命令生效
echo "[[ -f ~/.bash_aliases ]] && . ~/.bash_aliases" >> ~/.bash_profile     
source ~/.bash_profile
然后再到phpinfo对应页面里,就可以看到oci8扩展了



三、连接oracle数据库并使用

$conn = oci_connect('账号', '密码', "(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=连接oracle的ip地址)(PORT = 端口号))(CONNECT_DATA =(SID=HCMPRD2)))", "utf8");

$query = oci_parse($conn, "select * from TEST.ABC");//TEST数据库的ABC表
oci_execute($query);
oci_fetch_all($query, $list, null, null, OCI_FETCHSTATEMENT_BY_ROW);
var_dump($list);
https://segmentfault.com/a/1190000008224468

http://blog.sina.com.cn/s/blog_6d85b84b0102wwhr.html

http://blog.youkuaiyun.com/qq_15574035/article/details/76619751

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值