Oracle 서버에 접속할 클라이언트 라이브러리와 PHP OCI 모듈을 준비하는 절차입니다. 원노트는 Instant Client 21의 RPM 경로를 사용합니다. DB 서버를 설치하는 절차가 아니며 클라이언트·PHP·OS의 아키텍처와 지원 조합을 먼저 확인합니다.
클라이언트 패키지 준비
Oracle 공식 다운로드에서 필요한 Basic 계열과 도구 패키지를 받습니다. SQL*Plus가 필요하면 해당 패키지도 준비합니다. 직접 OCI 모듈을 빌드하는 경우에는 SDK 등 개발 파일이 추가로 필요할 수 있습니다.
참고: https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
실행 계정 환경 설정
예시는 lieper 계정의 셸에서 쓰는 환경변수입니다. 실제 RPM 설치 경로를 확인해 수정합니다. Instant Client에는 일반 Oracle Home과 다른 사용 방식이 있으므로 ORACLE_HOME을 무조건 전역으로 추가하지 않습니다.
export TNS_ADMIN=/home/lieper/oracle/network/admin
export PATH=/usr/lib/oracle/21/client64/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export NLS_LANG=KOREAN_KOREA.AL32UTF8TNS_ADMIN은 tnsnames.ora 같은 네트워크 설정 파일의 디렉터리입니다. 문자열 인코딩은 DB·애플리케이션과 맞춰 검증합니다. RPM이 동적 로더 경로를 이미 등록한 경우에는 LD_LIBRARY_PATH 중복 설정이 필요한지도 확인합니다.
PHP 모듈 확인
사용 중인 저장소에서 PHP 버전에 맞는 OCI 패키지를 조회하고 설치합니다. 아래 이름이 조회되지 않으면 저장소와 PHP stream을 확인하며 다른 버전의 패키지를 강제로 설치하지 않습니다.
dnf list --available '*php*oci*'
sudo dnf install php-oci8
php -m | grep -i oci
php --iniCLI의 php -m 결과와 PHP-FPM의 로딩 환경은 다를 수 있습니다. 서비스의 환경변수·확장 모듈 설정을 확인하고 재기동 후 실제 연결과 한글 데이터 조회를 시험합니다. DB 접속 암호는 설정 예시에 직접 넣지 않습니다.