专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

centos环境如何编译php7.4的oracle驱动

ins518 2024-10-26 12:13:16 技术文章 5 ℃ 0 评论

本次使用的环境:

  • CentOS7.9 (CentOS Linux release 7.9.2009 (Core))


  • PHP7.4
  • Oracle 11.2.0.4

安装php7.4

PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。

这里利用 bt 自带的安装php7.4,不再赘述如何安装。

安装完之后路径类似这样:

安装扩展之前确认 phpize 是否可以运行

phpize简介.

phpize命令是准备php扩展安装的编译环境的。. 用于手动编译安装php扩展。. 一般使用pecl来安装php扩展。. 如果pecl没法安装,比如在防火墙后面,或要安装的扩展在pecl还没有兼容包。. 则使用phpize手动编译安装。

phpize一般随着php的安装默认安装到php的bin目录下。

如果运行phpize缺失libcrypto.so.1.0.0,则需要进行关联。关联的方法

# 查询是否安装 openssl
ls -l /usr/lib64/libcrypto*

# 如果没安装则进行安装 openssl,安装略过
yum install -y openssl-libs.x86_64 openssl-devel.x86_64 openssl-devel.i686 openssl-libs.i686


ls -l /usr/lib64/libcrypto*

ln -s libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.0
ln -s libssl.so.1.0.2k /usr/lib64/libssl.so.1.0.0


安装php7.4的扩展oci8

什么是oci

这些函数允许您访问 Oracle 数据库。它们支持 SQL 和 PL/SQL 语句。基本功能包括事务控制,PHP绑定 变量到 Oracle 占位符,并支持大型对象 (LOB) 类型 和收藏。Oracle 的可扩展性功能,如数据库驻留 还支持连接池 (DRCP) 和结果缓存。

因为默认安装的已经自带oci,如果需要自己下载,则需要找到对应的版本进行编译。下图是关系映射表

编译代码的步骤,注意区分是自带oracle 还是 oracle client

# oracle home 方式
cd /www/server/php/74/src/ext/oci8
/www/server/php/74/bin/phpize
./configure --with-oci8=shared,/u01/oracle/product/11.2.0/dbhome_1 --with-php-config=/www/server/php/74/bin/php-config
make -j`nproc`


# oracle client方式
cd /www/server/php/74/src/ext/oci8
/www/server/php/74/bin/phpize
./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib
make -j`nproc`

安装完成启用配置 php.ini

[oci8]
extension = oci8.so

安装php7.4的扩展pdo_oci

PDO_OCI DSN — 连接到 Oracle 数据库

PDO_OCI数据源名称 (DSN) 由以下元素组成:

DSN前缀

DSN 前缀是oci:。

dbname(甲骨文即时客户端)

Oracle Instant Client 连接的 URI 采用以下形式。 如果要连接到 中定义的数据库,请仅使用数据库的名称:。dbname=//hostname:port-number/databasetnsnames.oradbname=database

charset

当前环境句柄的客户端字符集。

pdo_oci的安装方式和 oci8的安装方式一样

cd /www/server/php/74/src/ext/pdo_oci
/www/server/php/74/bin/phpize
./configure --with-pdo-oci=shared,/u01/oracle/product/11.2.0/dbhome_1 --with-php-config=/www/server/php/74/bin/php-config
make -j`nproc`
cd /www/server/php/74/src/ext/pdo_oci
/www/server/php/74/bin/phpize
./configure --with-pdo-oci=instantclient,/path/to/instant/client/lib  --with-php-config=/www/server/php/74/bin/php-config
make -j`nproc`

安装完成启用配置 php.ini

[pdo_oci]
extension = pdo_oci.so

配置环境参数

编辑php-fpm.conf文件 下面加如下配置。主要NLS_LANG的编码,使用自己的编码

env[LD_LIBRARY_PATH] = /u01/oracle/product/11.2.0/dbhome_1/lib
env[ORACLE_HOME] = /u01/oracle/product/11.2.0/dbhome_1
env[NLS_LANG] = AMERICAN_AMERICA.ZHS16GBK

代码中如何使用?


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表