Setting up PHP to use Oracle Instant Client (oci8) under RHEL/Fedora/CentOS distributions

Michael WorshamChief Architect | Private Cloud Solutions Architect | Project Manager
CERTIFIED EXPERT
Well-rounded and highly experienced with a professional background in cloud/infrastructure solutions and project management.
Published:
Updated:
Currently, there is not an RPM package available under the RHEL/Fedora/CentOS distributions that gives you a quick and easy way to allow PHP to interface with Oracle. As a result, I have included a set of instructions on how to do this with minimal time and effort.

To complete the steps, you you will need to get the Oracle Instant Client and the OCI8 PECL package.

Oracle Instant Client: http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
PECL OCI8 Package: http://pecl.php.net/package/oci8

1) Install Apache, PHP, the Oracle Instant Client MySQL support if you want it and required development packages to build from source code.

    yum install httpd php php-mysql php-pear php-devel zlib zlib-devel
    yum groupinstall "Development Tools"

2) Add the Oracle instant client to dynamic linker

    echo /usr/include/oracle/ON>/client > /etc/ld.so.conf.d/oracle_client.conf
    ldconfig -v

3) Untar the PECL package and prepare it for compiling

    tar -xzvf oci-.tgz
    cd oci-
    phpize

4) Configure the PECL package as a shared object using the instant client and specifying where the Oracle client libraries are. Then build and install it.

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/N>/client/lib
    make
    make install

5) Add the library shared object for PHP

    echo extension=oci8.so > /etc/php.d/oci8.ini

6) Start Apache

    'service httpd start' _or_ '/etc/init.d/httpd restart'

7) Create a PHP info page and checked to see if the Oracle (oci8) driver is listed:

    echo  > /var/www/html/phpinfo.php
 
0
23,864 Views
Michael WorshamChief Architect | Private Cloud Solutions Architect | Project Manager
CERTIFIED EXPERT
Well-rounded and highly experienced with a professional background in cloud/infrastructure solutions and project management.

Comments (1)

Michael WorshamChief Architect | Private Cloud Solutions Architect | Project Manager
CERTIFIED EXPERT

Author

Commented:
Instruction #1: Under RedHat Linux defined distributions (i.e. CentOS, RHEL, Fedora), 'yum' [Yellow dog Updater, Modified (YUM)] is an open-source command-line package-management utility for RPM-compatible Linux operating systems.

Instruction #3: Tar (Tape Archiver) is both a file format (in the form of a type of archive bitstream) and the name of the program used to handle such files. The use of 'tar -zxvf <filename>.tgz' will uncompress the 'tarball', then extract the files & directories into the directory the file is originally located in.

Instruction #6: There are two ways to do it under RedHat Linux: 'service httpd start' _or_ '/etc/init.d/httpd restart'

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.