持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的25天,点击查看活动详情
做项目的时候,远程的oracle数据库为我们提供一张中间表,我这边业务中的一些数据是需要到oracle数据库中的这张中间表去查询的。
PHP连接oracle数据库。需要用到OCI8的扩展。说来惭愧,工作这么多年,还没有正经的使用过oracle数据库。
mysql数据库的语法跟oracle数据库的语法是不一样的,别跟我似的上来就用mysql的语法来操作oracle数据库……有点丢人了……
今天我们大概记录一下OCI8扩展的安装过程。
一:下载文件
1 :oracle官网下载地址:
下载文件(看准了文件名):
oracle-instantclient19.8-basic-19.8.0.0.0-1.x86_64.rpm
oracle-instantclient19.8-devel-19.8.0.0.0-1.x86_64.rpm
2 :PHP官网下载地址:
PHP-OCI8插件
下载命令:
wget http://pecl.php.net/get/oci8-2.2.0.tgz
建议将以上三个文件放入/opt目录下,当然,具体放哪是你的自由。能找到就行。
二:安装
1 :安装oracle插件
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
可能会报错:
ImportError: libaio.so.1: cannot open shared object file: No such file or directory”
报错原因上边已经给出,缺少libiao插件,解决方法:
yum install libaio
2 :安装OCI8插件
(1):解压tar包:
tar -zxf oci8-2.2.0.tgz
(2):进入解压目录
cd oci8-2.2.0
(3):运行一下命令:
phpize
运行的时候可能会出现一下错误:Can’t find PHP headers in /usr/include/php The php-devel package is required for use
解决方案
yum install php72w-devel #注意一下,这条命令取决你安装的PHP版本,我这个命令并不适用所有人
(4):使用$ORACLE_HOME或Instant Client配置软件包
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib
或
./configure -with-oci8=shared,$ORACLE_HOME
(5):执行编译安装:
make install
这里可能会报错:
make: *** No rule to make target build', needed by
default’. Stop.
解决方案:
1:安装如下配置:
yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel
2: 重新 configure
./configure
3: 编译
make && make install
(6):配置php.ini
我们在PHP的配置文件php.ini中加上
extension=oci8.so
重启PHP
systemctl restart php-fpm
重启web服务器(nginx、apache等)。
systemctl restart nginx
查看PHPinfo();如下图所示:
然后,你就可以在你的PHP框架中配置多个数据库链接了。
有好的建议,请在下方输入你的评论。
欢迎访问个人博客:guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”
今天的文章php7.2安装OCI8扩展支持oracle数据库分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/23210.html