CentOSからOracleへ接続
Nov 3, 2016 · serverphpdbcentos
CentOSのPHP5.6から別サーバで動いているOracleのDBへoci8
で接続する方法
Macの場合はこちら
手順
Oracleのドライバのインストール
サーバのアーキテクチャを確認
uname -a
Oracle Instant Clientから 1で確認した環境の
basic
とSDK
をダウンロードしサーバへ保存
(今回はx86_64
だったのでVersion 12.1.0.2 (x86_64)
のrpm
を選択。以降このバージョンが前提)以下でインストール
cd (保存した場所) su rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
パスを通す
vi /etc/profile # 以下の行を追加 export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib:$LD_LIBRARY_PATH export PATH=/usr/lib/oracle/12.1/client64/bin:$PATH
追記したら保存して終了し
source /etc/profile
で強制反映させる
peclのインストール
- 以下でインストール
yum -y install --enablerepo=remi --enablerepo=remi-php56 php-pear
oci8のインストール
pecl
からインストールするのでDTrace
サポートを有効にするyum -y install systemtap-sdt-devel export PHP_DTRACE=yes
ちなみにこれをしないと
error: oci8_dtrace_gen.h: No such file or director
というエラーになる。 詳細はこちらoci8
をバージョン(Ver.2.0.12)を指定してインストールpecl install oci8-2.0.12
oci8の最新版だとPHP7以降の為、2.0系を指定する
インストール中にプロンプトが出れば、
instantclient,/usr/lib/oracle/12.1/client64/lib
と入力
PHPの設定
php.ini
に以下を設定extension=oci8.so
(場所が判らない時は
php -i | grep php.ini
)設定の確認
php --ri oci8
を実行して、
(略) OCI8 Support => enabled (略) OCI8 Version => 2.0.12 (略) Oracle Run-time Client Library Version => 12.1.0.2.0 Oracle Compile-time Instant Client Version => 12.1
と出ていればOK
PHPからの接続
Macの場合のPHPからの接続を参照
参考リンク
- PHP公式 Oracle OCI8
- Pecl公式 oci8
- Orcale Instant Client (下の方にインストール方法)
開発環境
- CentOS6.8
- PHP 5.6.27 + OCI8 2.0.12
- Oracle Instant Client 12.1.0.2.0
- DBサーバ OracleDB(Win)