Perfil de Facebook de Xynco Ltda

Configurando soporte Oracle con PHP en Linux Fedora 10


Internet tiene toneladas de contenido alrededor de este tema en los más variados lenguajes. Foros, blogs, comentarios, etc literalmente hablando ríos de bits. Este documento presenta un procedimiento completo para lograr el objetivo: Configurar el soporte Oracle en el servicio de páginas web basado en apache y php en un servidor Linux Fedora 10. El proceso que documento, funcionó adecuadamente para mí.

Para su completa comprensión, el lector debería poseer excelentes conocimientos -trataré de no ser exigente en esto- en el sistema operativo linux (cualquier distribución de linux que gestione paquetes rpm e incorpore la utilidad yum aplica. El proceso, como su nombre lo dice está documentado para Linux Fedora 10 aunque debo confesar que Linux Slackware es mi favorita). Una recomendación muy importante: No utilice este procedimiento en ambientes de producción sin antes haberlo ejecutado en un servidor de pruebas. Uselo bajo su completa responsabilidad y riesgo.

Contenido

1. Requerimientos Previos PHP
2. Requerimientos Previos Oracle
3. Instalación del Cliente Oracle
4. Instalación de instantclient (basic & devel)
5. Fijar el ambiente Oracle
6. Generación del Módulo OCI
7. Actualización del archivo de configuración de php
8. Reiniciar Apache
9. Verificar soporte de Oracle en PHP

Eso es todo!!!

1. Requerimientos Previos PHP

Debemos obtener una full Instalación de estos paquetes en nuestro server (ver lista)

php.i386 5.2.6-5 installed
php-Smarty.noarch 2.6.20-2.fc10 installed
php-bcmath.i386 5.2.6-5 installed
php-channel-phing.noarch 1.0.0-5.fc9 installed
php-channel-phpdb.noarch 1.0.0-4.fc8 installed
php-channel-phpunit.noarch 1.0-2.fc7 installed
php-channel-symfony.noarch 1.0.0-2.fc9 installed
php-cli.i386 5.2.6-5 installed
php-common.i386 5.2.6-5 installed
php-devel.i386 5.2.6-5 installed
php-gd.i386 5.2.6-5 installed
php-imap.i386 5.2.6-5 installed
php-ldap.i386 5.2.6-5 installed
php-mcrypt.i386 5.2.6-5 installed
php-mhash.i386 5.2.6-5 installed
php-mysql.i386 5.2.6-5 installed
php-pdo.i386 5.2.6-5 installed
php-pear.noarch 1:1.7.2-2.fc10 installed
php-pear-Auth.noarch 1.6.1-8.fc10 installed
php-pear-Auth-OpenID.noarch 2.1.1-6.fc9 installed
php-pear-Auth-RADIUS.noarch 1.0.6-1.fc10 installed
php-pear-Auth-SASL.noarch 1.0.2-4.fc6 installed
php-pear-Auth-radius.noarch 1.6.1-8.fc10 installed
php-pear-Auth-samba.noarch 1.6.1-8.fc10 installed
php-pear-Benchmark.noarch 1.2.7-1.fc8 installed
php-pear-Cache.noarch 1.5.5-1.fc10 installed
php-pear-Cache-Lite.noarch 1.7.4-1.fc10 installed
php-pear-Console-Color.noarch 1.0.2-2.fc10 installed
php-pear-Console-Getargs.noarch 1.3.4-1.fc8.1 installed
php-pear-Console-ProgressBar.noarch 0.5.2-0.2.beta.fc10 installed
php-pear-Console-Table.noarch 1.1.3-1.fc10 installed
php-pear-Crypt-CHAP.noarch 1.0.1-1.fc7 installed
php-pear-DB.noarch 1.7.13-1.fc8 installed
php-pear-DB-DataObject.noarch 1.8.8-2.fc10 installed
php-pear-DB-DataObject-FormBuilder.noarch
php-pear-DB-QueryTool.noarch 1.1.2-1.fc9 installed
php-pear-Date.noarch 1.4.7-2.fc7 installed
php-pear-Date-Holidays.noarch 0.20.1-1.fc10 installed
php-pear-Date-Holidays-USA.noarch 0.1.1-1.fc10 installed
php-pear-Event-Dispatcher.noarch 1.0.0-2.fc10 installed
php-pear-File.noarch 1.3.0-1.fc8 installed
php-pear-File-Find.noarch 1.3.0-1.fc9 installed
php-pear-File-Passwd.noarch 1.1.6-3.fc10 installed
php-pear-File-SMBPasswd.noarch 1.0.2-2.fc10 installed
php-pear-HTML-Common.noarch 1.2.4-2.fc10 installed
php-pear-HTML-QuickForm.noarch 3.2.10-1.fc9 installed
php-pear-HTML-QuickForm-ElementGrid.noarch
php-pear-HTML-QuickForm-advmultiselect.noarch
php-pear-HTML-Table.noarch 1.8.2-1.fc9 installed
php-pear-HTTP.noarch 1.4.1-2.fc10 installed
php-pear-HTTP-Client.noarch 1.1.1-1.fc10 installed
php-pear-HTTP-Request.noarch 1.4.3-1.fc10 installed
php-pear-HTTP-Upload.noarch 0.9.1-2.fc9 installed
php-pear-Image-Canvas.noarch 0.3.1-2.fc10 installed
php-pear-Image-Color.noarch 1.0.2-5.fc10 installed
php-pear-Image-Graph.noarch 0.7.2-4.fc10 installed
php-pear-Image-GraphViz.noarch 1.2.1-4.fc10 installed

hp-pear-Log.noarch 1.11.3-1.fc10 installed
php-pear-MDB2.noarch 2.4.1-2.fc9 installed
php-pear-MDB2-Driver-mysql.noarch 1.4.1-3.fc9 installed
php-pear-MDB2-Driver-mysqli.noarch 1.4.1-3.fc9 installed
php-pear-MDB2-Driver-pgsql.noarch 1.4.1-1.fc10 installed
php-pear-Mail.noarch 1.1.14-2.fc8 installed
php-pear-Mail-Mime.noarch 1.5.2-4.fc10 installed
php-pear-Mail-mimeDecode.noarch 1.5.0-3.fc9 installed
php-pear-Math-Stats.noarch 0.9.0-0.2.beta3.fc10 installed
php-pear-Net-Curl.noarch 1.2.5-1.fc10 installed
php-pear-Net-DIME.noarch 1.0.1-1.fc10 installed
php-pear-Net-DNS.noarch 1.0.0-2.fc10 installed
php-pear-Net-FTP.noarch 1.3.7-1.fc10 installed
php-pear-Net-IPv4.noarch 1.3.0-2.fc10 installed
php-pear-Net-POP3.noarch 1.3.6-2.fc7 installed
php-pear-Net-Ping.noarch 2.4.3-1.fc9 installed
php-pear-Net-SMTP.noarch 1.3.2-1.fc10 installed
php-pear-Net-Sieve.noarch 1.1.6-1.fc10 installed
php-pear-Net-Socket.noarch 1.0.9-1.fc10 installed
php-pear-Net-Traceroute.noarch 0.21.1-3.fc10 installed
php-pear-Net-URL.noarch 1.0.15-1.fc8 installed
php-pear-Net-URL-Mapper.noarch 0.9.0-2.fc9 installed
php-pear-Net-UserAgent-Detect.noarch 2.5.0-1.fc10 installed
php-pear-Numbers-Roman.noarch 1.0.2-2.fc9 installed
php-pear-Numbers-Words.noarch 0.15.0-4.fc10 installed
php-pear-PEAR-Command-Packaging.noarch 0.1.2-6.fc10 installed
php-pear-PHP-CodeSniffer.noarch 1.1.0-0.1.RC2.fc10 installed
php-pear-PHP-Compat.noarch 1.5.0-2.fc10 installed
php-pear-PHP-CompatInfo.noarch 1.8.1-1.fc10 installed
php-pear-PHPUnit.noarch 3.3.2-1.fc10 installed
php-pear-Pager.noarch 2.4.7-1.fc10 installed
php-pear-Payment-Process.noarch 0.6.6-1.fc10 installed
php-pear-Phlickr.noarch 0.2.7-3.fc10 installed
php-pear-PhpDocumentor.noarch 1.4.2-1.fc10 installed
php-pear-PhpDocumentor-docs.noarch 1.4.2-1.fc10 installed
php-pear-SOAP.noarch 0.12.0-1.fc10 installed
php-pear-Services-Weather.noarch 1.4.3-1.fc10 installed
php-pear-Structures-DataGrid.noarch 0.9.0-3.fc10 installed
php-pear-Structures-DataGrid-DataSource-Array.noarch
php-pear-Structures-DataGrid-DataSource-DataObject.noarch
php-pear-Structures-DataGrid-DataSource-MDB2.noarch
php-pear-Structures-DataGrid-DataSource-RSS.noarch
php-pear-Structures-DataGrid-Renderer-Pager.noarch
php-pear-Structures-DataGrid-Renderer-Smarty.noarch
php-pear-Validate.noarch 0.8.1-1.fc9 installed
php-pear-Validate-Finance-CreditCard.noarch
php-pear-Var-Dump.noarch 1.0.3-2.fc10 installed
php-pear-XML-Beautifier.noarch 1.2.0-1.fc10 installed
php-pear-XML-Parser.noarch 1.3.1-1.fc10 installed
php-pear-XML-RSS.noarch 0.9.10-5.fc10 installed
php-pear-XML-Serializer.noarch 0.18.0-4.fc10 installed
php-pear-XML-Util.noarch 1.2.0-1.fc10 installed
php-pear-creole.noarch 1.1.0-5.fc8 installed
php-pear-pake.noarch 1.1.4-3.fc9 installed
php-pear-phing.noarch 2.3.0-1.fc9 installed
php-pear-propel_generator.noarch 1.3.0-1.fc10 installed
php-pear-propel_runtime.noarch 1.3.0-1.fc10 installed
php-pecl-radius.i386 1.2.5-5.fc10 installed
php-pecl-xdebug.i386 2.0.3-4.fc10 installed
php-pgsql.i386 5.2.6-5 installed
php-soap.i386 5.2.6-5 installed
php-xml.i386 5.2.6-5 installedd

2. Requerimientos Previos Oracle

Obtener los siguientes archivos:

oracle-xe-client-10.2.0.1-1.0.i386.rpm (obtenido de oracle.com)
oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm (obtenido de oracle.com)
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm (obtenido de oracle.com)
oci8-1.3.4.tgz.gz (obtenido de PECL, PECL is a repository for PHP Extensions, providing a directory of all known extensions and hosting facilities for downloading and development of PHP extensions)

3. Instalación del Cliente Oracle

rpm -ivh oracle-xe-client-10.2.0.1-1.0.i386.rpm

4. Instalación de instantclient (basic & devel)

rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
rpm -ivh oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm

5. Fijar el ambiente Oracle

Esto puede variar de acuerdo a como ud tenga su server.

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
LD_LIBRARY_PATH=/usr/lib/oracle/11.1/client/lib:/lib:/usr/lib
ORACLE_BASE=/usr/lib/oracle/xe/app/oracle
export ORACLE_HOME LD_LIBRARY_PATH ORACLE_BASE

6. Generación del Módulo OCI

a. Descomprimimos el paquete oci8-1.3.4.tgz.gz

tar zxvf oci8-1.3.4.tgz.gz

b. Cambiamos de directorio

cd oci8-1.3.4

c. Preparamos el módulo para que sea generado para php

phpize

d. compilamos e instalamos:

./configure -with-oci8=shared,instantclient,/usr/lib/oracle/11.1/client/lib/

make install

7. Actualización del archivo de configuración de php

vim /etc/php.ini

agregar la línea

extension=oci8.so

8. Reiniciar Apache

service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

9. Verificar soporte de Oracle en PHP

subímos un script que contenga las iguientes líneas

<?php
phpinfo();
?>

Lo corremos desde un navegador (browser) y debemos obtener en parte esta salida (ver imágen abajo), la cual es mucho más extensa que lo que muestra la pantalla, pues la imágen sólo contiene la parte relacionada con Oracle.

Eso es todo!!!


Cordial Saludo y sinceramente espero que este documento sea de utilidad,

Solón Cáceres Moreno

Ingeniero de Sistemas UIS
Web Site: http://solca-ws.bogotanos.net

Imágen: Salida de phpinfo - Sección Oracle
oracle_php_640x480
 
Any Browser Campaing apache web server php mysql opera Firefox Browser Internet Explorer