Friday, December 11, 2015

Enable Oci8 in Mac

Installation

This procedure is tested on Mac OS X 10.8 with Developpers tools installed (xCode).
PHP 5.4 installed with Homebrew.

Preparation

Download the following files from Oracle website (yes, you need to create an account and accept terms):
Create and unzip all theses files into a the directory `/usr/local/instantclient/11.2.0.3/`.
This directory will looks like:

.
├── BASIC_README
├── SQLPLUS_README
├── adrci
├── genezi
├── glogin.sql
├── libclntsh.dylib.11.1
├── libnnz11.dylib
├── libocci.dylib.11.1
├── libociei.dylib
├── libocijdbc11.dylib
├── libsqlplus.dylib
├── libsqlplusic.dylib
├── ojdbc5.jar
├── ojdbc6.jar
├── sdk
│   ├── SDK_README
│   ├── demo
│   ├── include
│   ├── ott
│   └── ottclasses.zip
├── sqlplus
├── uidrvci
└── xstreams.jar


Create symlinks


ln -s /usr/local/instantclient/11.2.0.3/sdk/include/*.h /usr/local/include/
ln -s /usr/local/instantclient/11.2.0.3/sqlplus /usr/local/bin/
ln -s /usr/local/instantclient/11.2.0.3/*.dylib /usr/local/lib/
ln -s /usr/local/instantclient/11.2.0.3/*.dylib.11.1 /usr/local/lib/
ln -s /usr/local/lib/libclntsh.dylib.11.1 /usr/local/lib/libclntsh.dylib

Test with sqlplus instantclient

I recommand to install Oracle Server with a VirtualBox VM preinstalled.
/usr/local/bin/sqlplus oracle/oracle@192.168.2.2

Install extension with pecl


pecl install oci8
If the script prompt you to provide the path to ORACLE_HOME directory, respond with:

instantclient,/usr/local/lib
And your are done, normally pecl will automatically load the extension in your `php.ini`. If not, add the following line to your `php.ini`:

extension=oci8.so
Restart your HTTP Server and test.
Enjoy (or try to…) !

Troubleshooting

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
ERROR: `phpize' failed
Solution :

Run this command. First run this command to make sure your mac can run command brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install autoconf

No comments: