phpでoci8(oracle)関数を使えるようにするためのメモ。
ソースからコンパイルするのではなく、すでにインストールされているRPMに追加する形でインストールします。

ソースからやる場合はPHP+Oracle Instant Clientのインストール - Do You PHP?とかを参考にすると良いと思います。

インストールしたのはCentOS 5.2 + PHP 5.1.6ですが、方法自体は他のlinuxでも使えると思います。

Oracle Instant Client をインストール


Instant Client Downloads
からInstant Clientをダウンロードする。
x64(i386)かx86_64かは環境に応じて選択。

インストール必須なのは "Basic" と "SDK"。それ以外は必要に応じて適宜。

pecl oci8のインストール


ソースからコンパイルする場合はConfigureオプションに "--with-oci8-instant-client" とすればいいですが、すでにパッケージでインストールされている場合は、pecl oci8を使った方が簡単にできます。
(あとはRPMをリビルドするという手段もあるけど・・・)
#pecl install oci8
と実行して、インストールを行う。
このときに "Allowed memory size" とか "`phpize' failed"とかいわれた人は
[php]PECLコマンドが成功するまでのエラー解決備忘録を読んで対応。
(正直、これで結構つまずいた。cliはphp.ini変更してもだめなのね)

インストールが進むと
Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] :
と聞かれるので
instantclient,/usr/lib/oracle/11.1/client64/lib/
と入力する。
最初の "instantclient," を忘れてはいけないことに注意する。
(これがないとうまくインストールできない)
あと、バージョンNoやCPUは適宜あわせること。

iniファイルにエクステンションの設定を書く


/etc/php.d/oci8.ini を新規に作成し
extension=oci8.so
とする。

ファイルを作成したら、httpd をリスタートして完了。
これでoci8関数が使えるようになる。

にほんブログ村 IT技術ブログ プログラム・プログラマへ