Diff for "PHPOracle"


Differences between revisions 4 and 5
Revision 4 as of 2008-06-27 10:15:31
Size: 1775
Editor: localhost
Comment: converted to 1.6 markup
Revision 5 as of 2010-05-06 07:43:44
Size: 2334
Editor: 157
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
To be able to access Oracle databases from PHP, you will need to have PHP compiled / linked with the Oracle OCI (oci8) library .
You could use the pre-built PHP 5 from Zend http://www.oracle.com/technology/tech/php/zendcore/index.html
To be able to access Oracle databases from PHP, you will need to have PHP compiled / linked with the Oracle OCI (oci8) library.
Line 4: Line 3:
or there are two other ways to get PHP working with OCI8: You could use the [[http://www.oracle.com/technology/tech/php/zendcore/index.html pre-built|PHP 5 from Zend]] or there are two other ways to get PHP working with OCI8:
Line 19: Line 18:
Ubuntu Server 6.06 LTS
Oracle Instant Client 10.2.0.2
Ubuntu Server 10.04 LTS
Oracle Instant Client 11.2
Line 29: Line 28:
Also download the Oracle Instant Client
http://www.oracle.com/technology/tech/oci/instantclient/index.html
Instant Client installation requires some environment variables to be able to see the library folder. Edit /etc/environment and add at the end:
Line 32: Line 30:
You will need the Basic (34MB) and SDK (600K). The Basic Lite version does not work. {{{
# Oracle Instant Client
LD_LIBRARY_PATH="/usr/local/lib/instantclient_11_2"
TNS_ADMIN="/usr/local/lib/instantclient_11_2"
ORACLE_BASE="/usr/local/lib/instantclient_11_2"
ORACLE_HOME=$ORACLE_BASE
}}}

Then download the [http://www.oracle.com/technology/tech/oci/instantclient/index.html Oracle Instant Client from Oracle.com] (you will need to create an account)

You will need the Basic (48MB) and SDK (600K). The Basic Lite version does not work.
Line 38: Line 46:
cd instantclient_10_2
sudo ln -s libclntsh.so.10.1 libclntsh.so
cd instantclient_11_2
sudo ln -s libclntsh.so.11.1 libclntsh.so
Line 51: Line 59:
instantclient,/usr/local/lib/oracle_10_2 instantclient,/usr/local/lib/oracle_11_2
}}}

You will be prompted also for the ORACLE_HOME location, type 'all', accept and then insert:

{{{
instantclient,/usr/local/lib/oracle_11_2
Line 57: Line 71:
extension = oci8.so extension=oci8.so

To be able to access Oracle databases from PHP, you will need to have PHP compiled / linked with the Oracle OCI (oci8) library.

You could use the PHP 5 from Zend or there are two other ways to get PHP working with OCI8:

  1. Install the Oracle Database [Oracle10g] [Oracle9i]
  2. Install Oracle Instant Client

If your Oracle database is in another machine, the Oracle Instant Client is a smaller install.

PHP using Oracle Database Server

TODO

PHP using Oracle Instant Client

Tested Environment:

Ubuntu Server 10.04 LTS Oracle Instant Client 11.2

Prerequisites:

sudo apt-get install build-essential
sudo apt-get install php5-dev php-pear

Instant Client installation requires some environment variables to be able to see the library folder. Edit /etc/environment and add at the end:

# Oracle Instant Client
LD_LIBRARY_PATH="/usr/local/lib/instantclient_11_2"
TNS_ADMIN="/usr/local/lib/instantclient_11_2"
ORACLE_BASE="/usr/local/lib/instantclient_11_2"
ORACLE_HOME=$ORACLE_BASE

Then download the [http://www.oracle.com/technology/tech/oci/instantclient/index.html Oracle Instant Client from Oracle.com] (you will need to create an account)

You will need the Basic (48MB) and SDK (600K). The Basic Lite version does not work.

cd /usr/local/lib
sudo unzip <location-of-instant-client-basic>
sudo unzip <location-of-instant-client-sdk>
cd instantclient_11_2
sudo ln -s libclntsh.so.11.1 libclntsh.so

The symbolic link is needed by during the compilation step later.

sudo pecl install oci8

You will be prompted for the location of the library:

instantclient,/usr/local/lib/oracle_11_2

You will be prompted also for the ORACLE_HOME location, type 'all', accept and then insert:

instantclient,/usr/local/lib/oracle_11_2

If successful, you may now add the following line at the bottom of php.ini

extension=oci8.so

The php.ini is found in 2 places: /etc/php5/apache2/php.ini and /etc/php5/cli/php.ini

sudo /etc/init.d/apache2 reload

Check <?php echo phpinfo() ?> to verify if the OCI8 module is available.

Further Reading

* Oracle PHP Wiki

PHPOracle (last edited 2014-01-03 04:33:00 by 202)