문서유형ㅣ기술정보
분야ㅣ인터페이스/연동
적용제품버전ㅣTibero7
문서번호ㅣTIITI051
개요
본 문서는 PHP 8.0 환경에서 OCI8 을 사용하여 Tibero7 DB와 연동하기 위해 실제 수행한 절차를 기준으로 정리한 기술 문서입니다.
구성 및 제약사항
1) PHP 8.3이상에서는 OCI8 이 Oracle Client 11.2 이상 요구합니다.
https://pecl.php.net/package/oci8
2) Tibero의 libtboci.so는 Oracle 10g 호환 수준까지만 지원합니다.
3) 결과적으로 아래 환경으로 구성합니다.
- 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
방법
1. Tibero Client 설치
Tibero Client는 Oracle OCI 10.x 호환 라이브러리를 제공하며, libtboci.so 파일을 통해 OCI 인터페이스를 구현합니다.
# 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=localhost)
(PORT=21724)
(DB_NAME=tb724)
)
)
$ tbsql sys/tibero@tibero
tbSQL 7
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
Connected to Tibero using tibero.
2. Oracle Client 설치
Oracle Instant Client는 OCI8 컴파일을 위한 헤더(SDK) 및 보조 라이브러리(libnnz) 제공 용도로만 사용합니다
실제 런타임 OCI 라이브러리는 Tibero Client의 libtboci.so 를 사용하며, Oracle Client의 libclntsh.so 는 사용하지 않습니다.
# 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
-- 헤더 파일 복사
※ oci8 configure 과정에서 OCI 헤더를 Tibero Client 경로에서
참조하도록 하기 위해 Oracle Client 10.2 헤더를 $TB_HOME/client/lib 에 복사
$ cd /home/php/instantclient/include
$ cp * $TB_HOME/client/lib
3. PHP 8.0.30
-- 필수 패키지 설치
# 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 oci8-3.0.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 라이브러리 링크 설정
OCI8 확장은 Oracle Client 라이브러리(libclntsh.so)를 기대하므로, Tibero의 libtboci.so를 동일한 이름으로 링크합니다.
일부 Tibero 버전에서는 바이너리 내 libtboci.so 가 포함되지 않을 수 있으며, 해당 경우 Technet에서 별도 다운로드하여 사용해야 합니다.
-- Symbolic Link to Tibero Client -- tbliboci.so 파일 업로드 $ 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. 연동테스트
$ vi aa.php
<?php
$conn = oci_connect('sys', 'tibero', 'tibero');
if (!$conn) {
$e = oci_error();
var_dump($e);
exit;
}
echo "Tibero OCI8 연결 성공\n";
?>
$ php aa.php
Tibero OCI8 연결 성공