centos7系统中PHP环境安装oracle数据库扩展控件oci8

2023-06-01 00:00:00 安装 扩展 控件

php中的oci8是支持操作oracle数据库的扩展控件。oci8 函数就是php_oci8.dll 操作ORACLE的一系列函数。要开启这个扩展支持,就在 php.ini 中修改 ;extension=php_oci8.dll 去掉分号 在重名服务就OK了


安装步骤:

1.下载 oracle 文件:

必须和连接的 oracle 数据库一致,如:

连接的是 11.0.2.4 的 oracle,下载的文件就需要是 11 版本的。

以下的用 11.0.2.4 的 oracle 举例操作

下载地址:

https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html

下载的文件:

1.oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
2.oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
3.oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm


2. 安装 oracle-instantclien

2.1 进入到 /usr/local/src/ 目录,把下载好的 rpm 全部拷贝到该目录下

[[email protected] src]# pwd
/usr/local/src
[[email protected] src]# ls
oci8                                                    oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm  oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm

2.2 安装包

rpm -Uvh oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
rpm -Uvh oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
rpm -Uvh oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm

2.3 确认安装完成

[[email protected] oracle]# ls
11.1
[[email protected] oracle]# pwd
/usr/lib/oracle


3. 添加 php 的 oci 扩展

3.1. 进入编译包

[[email protected] oci8]# pwd
/var/www/html/php-7.4.0/ext/oci8

3.2./usr/local/php740/bin/phpize

[[email protected] oci8]# /usr/local/php740/bin/phpize
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902

3.3 ./configure

[[email protected] oci8]# ./configure --with-php-config=/usr/local/php740/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.1/client64/lib
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for pkg-config... /bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out

3.4 make

[[email protected] oci8]# make && make install
PATH="$PATH:/sbin" ldconfig -n /var/www/html/php-7.4.0/ext/oci8/modules
----------------------------------------------------------------------
Libraries have been installed in:
 /var/www/html/php-7.4.0/ext/oci8/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
 - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php740/lib/php/extensions/no-debug-non-zts-20190902/

[[email protected] oci8]# cd /usr/local/php740/lib/php/extensions/no-debug-non-zts-20190902/
[[email protected] no-debug-non-zts-20190902]# ls
gd.so  libzip.so  mongodb.so  oci8.so  opcache.a  opcache.so  redis.so  swoole.so  xdebug.so  zip.so


4.1 引入

vim /usr/local/php740/lib/php.ini

下面每种都可

extension=/usr/local/php740/lib/php/extensions/no-debug-non-zts-20190902/oci8.so
extenstion=oci8.so

相关文章