Document Type | Technical Information
Category | Interface/Integration
Applicable Product Version | Tibero7
Document Number | TIITI051
Overview
This document is a technical guide organized based on the actual procedures performed to integrate Tibero7 DB with PHP 8.0 environment using OCI8.
Configuration and Limitations
1) PHP 8.3 or higher requires OCI8 to use Oracle Client 11.2 or higher.
https://pecl.php.net/package/oci8
2) Tibero's libtboci.so only supports up to Oracle 10g compatibility level.
3) As a result, the following environment is configured.
- OS : RHEL 8.9
- PHP : 8.0.30
- OCI8 : 3.0.1
- Oracle Client : 10.2
- Tibero Client : 7.2.4
- Tibero :7.2.4
Method
1. Install Tibero Client
The Tibero Client provides an Oracle OCI 10.x compatible library and implements the OCI interface through the libtboci.so file.
# su - php
$ vi .bash_profile
export TB_HOME=/home/php/tibero7
export LD_LIBRARY_PATH=$TB_HOME/client/lib:$LD_LIBRARY_PATH
$ . ./.bash_profile
$ tar xvzf tibero7-bin-FS02_PS04-linux64_4.18-305455-20251114115231.tar.gz
$ cd $TB_HOME/config
$ ./gen_tip.sh
Using TB_SID "tibero"
/home/php/tibero7/config/tibero.tip generated
/home/php/tibero7/config/psm_commands generated
/home/php/tibero7/client/config/tbdsn.tbr generated.
Running client/config/gen_esql_cfg.sh
Done.
$ cd $TB_HOME/client/config
$ vi tbdsn.tbr
tibero=(
(INSTANCE=(HOST= (DB_NAME=tb724)
)
)
$ tbsql sys/tibero@tibero
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero using tibero.
2. Install Oracle Client
Oracle Instant Client is only used to provide headers (SDK) and auxiliary libraries (libnnz) for compiling OCI8.
The actual runtime OCI library uses Tibero Client's libtboci.so, and Oracle Client's libclntsh.so is not used.
# su - php
$ vi .bash_profile
export ORACLE_HOME=/home/php/instantclient
export LD_LIBRARY_PATH=$TB_HOME/client/lib:$ORACLE_HOME:$LD_LIBRARY_PATH
$ . ./.bash_profile
$ mkdir /home/php/instantclient
$ tar xvzf basic-10.2.0.5.0-linux-x64.tar.gz
$ mv instantclient_10_2 /home/php/instantclient/lib
$ cd lib
$ tar xvzf sdk-10.2.0.5.0-linux-x64.tar.gz
$ mv instantclient_10_2/sdk/include/ home/php/instantclient/include
-- Copy header files
โป During the oci8 configure process, in order to reference OCI headers from the Tibero Client path,
copy the Oracle Client 10.2 headers to $TB_HOME/client/lib
$ cd /home/php/instantclient/include
$ cp * $TB_HOME/client/lib
3. PHP 8.0.30
-- Install required packages
# yum install -y gcc gcc-c++ make autoconf libtool pkg-config \
libxml2-devel sqlite-devel oniguruma-devel openssl-devel
# su - php
$ vi .bash_profile
export PHP_HOME=/home/php/php80
export PATH=$PHP_HOME/bin:$PATH
$ . ./.bash_profile
$ tar xvzf php-8.0.30.tar.gz
$ cd php-8.0.30
$ ./configure \
--prefix=/home/php/php80 \
--enable-fpm \
--with-config-file-path=/home/php/php80/etc \
--with-config-file-scan-dir=/home/php/php80/etc/php.d \
--enable-mbstring \
--enable-pdo \
--with-pdo-mysql \
--enable-sockets \
--with-zlib \
--with-libdir=lib64
$ make -j$(nproc)
$ make install
$ php -v
PHP 8.0.30 (cli) (built: Dec 15 2025 14:32:37) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologi
-- oci8 load
$ cp php.ini-production $PHP_HOME/etc/php.ini
$ vi $PHP_HOME/etc/php.ini
extension=oci8.so
$ php -m |grep oci
oci8
$ php -i | grep OCI8
OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 3.0.1
4. OCI8 3.0.1
# su - php $ tar xvzf o0.1.tgz $ cd oci8-3.0.1 $ /home/php/php80/bin/phpize Configuring for: PHP Api Version: 20200930 Zend Module Api No: 20200930 Zend Extension Api No: 420200930 $ ./configure \ --with-oci8=shared,instantclient,$TB_HOME/client/lib \ --with-php-config=/home/php/php80/bin/php-config $ make $ make install
5. Tibero Library Link Settings
The OCI8 extension expects the Oracle Client library (libclntsh.so), so Tibero's libtboci.so is linked under the same name.
In some Tibero versions, the libtboci.so file may not be included in the binary, in which case it must be downloaded separately from Technet.
-- Symbolic Link to Tibero Client -- Upload tbliboci.so file $ cd $TB_HOME/client/lib $ ln -s libtboci.so libclntsh.so.10.1 $ ln -s libclntsh.so.10.1 libclntsh.so $ ln -s $ORACLE_HOME/libnnz10.so libnnz10.so $ ls -al |grep '^l' lrwxrwxrwx 1 php dba 17 Dec 15 13:37 libclntsh.so -> libclntsh.so.10.1 lrwxrwxrwx 1 php dba 11 Dec 15 13:37 libclntsh.so.10.1 -> libtboci.so lrwxrwxrwx 1 php dba 39 Dec 15 13:37 libnnz10.so -> /home/php/instantclient/lib/libnnz10.so $ cd $TB_HOME/client/lib $ ldd libclntsh.so linux-vdso.so.1 (0x00007ffee96bb000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00001553efd6b000) libdl.so.2 => /lib64/libdl.so.2 (0x00001553efb67000) libm.so.6 => /lib64/libm.so.6 (0x00001553ef7e5000) librt.so.1 => /lib64/librt.so.1 (0x00001553ef5dd000) libc.so.6 => /lib64/libc.so.6 (0x00001553ef207000) /lib64/ld-linux-x86-64.so.2 (0x00001553f1ccc000)
6. Integration Test
$ vi aa.php
<?php
$conn = oci_connect('sys', 'tibero', 'tibero');
if (!$conn) {
$e = oci_error();
var_dump($e);
exit;
}
echo "Tibero OCI8 connection successful\n";
?>
$ php aa.php
Tibero OCI8 connection successful