MAMPのPHPにoci8を追加してOracleに接続する手順

NO IMAGE

この方法では動きませんでした!!!

32bit版を入れると以下のエラー
~~~
/usr/lib/libclntsh.dylib.10.1: mach-o, but wrong architecture in Unknown on line 0
~~~

64bit版だとテストが全部こけます(‘A`)

Instant Clientの入手

Instant Client downloads for Mac OS X (Intel x86)からinstantclientとダウンロードする

  • instantclient-basic-10.2.0.4.0-macosx-x86.zip
  • instantclient-sdk-10.2.0.4.0-macosx-x86.zip

この時に必ず32-bitを使うこと!

64-bit版は以下エラーが出で動きません

~~~
Segmentation fault: 11
~~~

Instant Clientのインストール

ダウンロードしたzipを解凍するとinstantclient_10_2とinstantclient_10_2 2/sdkというディレクトリができるので下のようになるようにする

~~~
instantclient_10_2
├── BASIC_README
├── classes12.jar
├── genezi
├── libclntsh.dylib.10.1
├── libnnz10.dylib
├── libocci.dylib.10.1
├── libociei.dylib
├── libocijdbc10.dylib
├── libocijdbc10.jnilib
├── ojdbc14.jar
└── sdk
~~~

コマンドラインからインストールする

~~~
sudo cp instantclient_10_2/sdk/include/*.h /usr/include
sudo cp instantclient_10_2/*.dylib /usr/lib
sudo cp instantclient_10_2/*.dylib.* /usr/lib

cd /usr/lib
sudo ln -s libclntsh.dylib.10.1 libclntsh.dylib
~~~

oci8をインストールする

~~~
sudo pecl install oci8
~~~
事前にpeclコマンドを使えるようにしておく必要があります
MAMP 2.0.5 のPHPにImageMagickをインストールに書いてあります

コマンドを叩くと途中でパスを聞かれます

~~~
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] :
~~~

その時にこう入れればOKです
~~~
instantclient,/usr/lib
~~~

php.iniに追記

~~~
extension=oci8.so
~~~

apacheを再起動して完了!

接続テスト

このようなPHPを作ってエラーが出なければおしまい
~~~