Oracle Instant Client and PHP OCI8 on Debian Squeeze
Because there is no deb package for PHP OCI8 for Debian, here is a simple tutorial how to install Oracle Instant Client and use PHP OCI8 on Debian Squeeze.
Install dependencies and required packages
This will install Apache with PHP5 support and all required packages to configure OCI8.
aptitude install php-pear php5-dev build-essential unzip libaio1
Download the software from Oracle website where you will need a Oracle account. You can create one for free if you don’t have one. Go to this link and choose your platform: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
You need yo download the following packages:
Instant Client Package - Basic Instant Client Package - SDK
Now we are going to create the location where we are going to store Oracle Instant Client files
mkdir -p /opt/oracle/instantclient cd /opt/oracle/instantclient unzip instantclient-basic-linux.x64-18.104.22.168.0.zip unzip instantclient-sdk-linux.x64-22.214.171.124.0.zip mv instantclient_11_2/* ./ rm -r instantclient_11_2/ instantclient-basic-linux.x64-126.96.36.199.0.zip instantclient-sdk-linux.x64-188.8.131.52.0.zip
Now we need to create the missing simlinks
ln -s libclntsh.so.11.1 libclntsh.so ln -s libocci.so.11.1 libocci.so
Now we are going to install the PHP part and OCI8 package
pecl install oci8 (when asked for ORACLE_HOME directory type: instantclient,/opt/oracle/instantclient)
At the and load OCI8 as extension and restart apache
echo "extension = oci8.so"> /etc/php5/conf.d/oci8.ini /etc/init.d/apache2 restart
You should now be able to see OCI8 as module in phpinfo() or type:
php-i | grep oci
you will get:
oci8 oci8.connection_class => no value => no value oci8.default_prefetch => 100 => 100 oci8.events => Off => Off oci8.max_persistent => -1 => -1 oci8.old_oci_close_semantics => Off => Off oci8.persistent_timeout => -1 => -1 oci8.ping_interval => 60 => 60 oci8.privileged_connect => Off => Off oci8.statement_cache_size => 20 => 20
Also the easiest way i’ve found to connect to a remote Oracle database is with this code:
<?php $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XX.XXX)(PORT = 1521)))(CONNECT_DATA=(SID=XXXX)))"; $c1 = oci_connect("name","password",$db); ?>
I hope this will help you and here are some related links:
PHP OCI8 manual: http://php.net/manual/en/book.oci8.php
Oracle Database: http://www.oracle.com
Fantastic. Thank you.
Super, thank you!
Thank you very much.
Just for the record what happened to me. If you’re going to download oci8 using a proxy address, just use: pear config-set http_proxy address:port.
After that, you can use: pecl install oci8
The approach i nice but there are many many error in the document. The unix command need a recheck.
Thanks so much, this post helped me many times!