Instal·lar suport d’Oracle oci8 i PHP a un servidor Linux

Amb PHP5

Per conectar-nos a una Base de dades Oracle amb PHP desde Linux, necesitem el mòdul oci8 pel php. La Base de dades Oracle pot estar a la mateixa màquina o a qualsevol altre, això no importa.

Baixem els paquets “Basic” i “SDK” desde:

http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html

Ara mateix, les versions són aquestes:

instantclient-basic-linux32-10.2.0.1-20050713.zip
instantclient-sdk-linux32-10.2.0.1-20050713.zip

Descomprimim els .zip i movem tot el que hi hagi dins la carpeta creada “instantclient_10_2” al directori /opt/oracle/instantclient

$ unzip instantclient-basic-linux32-10.2.0.1-20050713.zip
$ unzip instantclient-sdk-linux32-10.2.0.1-20050713.zip
# mkdir -p /opt/oracle/instantclient
# mv instantclient_10_2/* /opt/oracle/instantclient/.
# cd /opt/oracle/instantclient
# ln -s libclntsh.so.10.1 libclntsh.so 
# ln -s libocci.so.10.1 libocci.so

Posem les llibreries al path:

# echo /opt/oracle/instantclient >> /etc/ld.so.conf 
# ldconfig

(Seguim…)

Ara baixarem el mòdul de php amb PEAR i el compilarem i instal·larem:

# aptitude install build-essential
# aptitude install php5-dev
# aptitude install php-pear

# mkdir -p /usr/local/src 
# cd /usr/local/src 
# pear download oci8 
# tar xzf oci8-1.1.1.tgz 
# cd oci8-1.1.1 
# phpize 
# ./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient 
# make 
# make install

Ara el oci8 té la versió 1.1.1, però pot canviar més endavant.

Per habilitar el mòdul al php, introduïrem el següent:

extension=oci8.so

Als php.ini convenients (/etc/php5/apache2/php.ini i /etc/php5/cli/php.ini)
(p.e. es poden posar després dels exemples que comencen per ;extension).

Ara reiniciem l’Apache i ja es fan efectius els canvis.

# /etc/init.d/apache2 restart

Amb un phpinfo(); veurem que existeix el mòdul oci8.

Font: http://ubuntuforums.org/showthread.php?t=92528

Amb PHP4

Si volem també suport a php4, fem el següent:

# aptitude install php4-pear

# update-alternatives --config phpize

There are 2 alternatives which provide `phpize'.

  Selection    Alternative
-----------------------------------------------
*+    1        /usr/bin/phpize5
      2        /usr/bin/phpize4

Press enter to keep the default[*], or type selection number: 2
Using `/usr/bin/phpize4' to provide `phpize'.

# update-alternatives --config php-config


There are 2 alternatives which provide `php-config'.

  Selection    Alternative
-----------------------------------------------
*+    1        /usr/bin/php-config5
      2        /usr/bin/php-config4

Press enter to keep the default[*], or type selection number: 2
Using `/usr/bin/php-config4' to provide `php-config'.

Després procedim a compilar el mòdul igualment que amb php5, borrem el oci-1.1.1 de abans i tornem a compilar desde un còpia neta.

# cd /usr/local/src 
# pear download oci8 
# tar xzf oci8-1.1.1.tgz 
# cd oci8-1.1.1 
# phpize 
# ./configure --with-oci8=shared,instantclient,/opt/oracle/instantclient 
# make 
# make install

Per habilitar el mòdul al php, introduïrem el següent:

extension=oci8.so

Als php.ini convenients (/etc/php4/apache2/php.ini i /etc/php4/cli/php.ini)
(p.e. es poden posar després dels exemples que comencen per ;extension).

Ara reiniciem l’Apache i ja es fan efectius els canvis.

# /etc/init.d/apache2 restart

Autor: jBilbo

This entry was posted in Ubuntu. Bookmark the permalink.

4 Responses to Instal·lar suport d’Oracle oci8 i PHP a un servidor Linux

  1. Anonymous says:

    Les variables d’entorn ORACLE ( SID i demes ) i on posar el tnsnames.ora ( q per ser d’aquesta forma no m’ho ha trobat i ho tingut q posar dins els scripts ).

  2. jBilbo says:

    Hem sembla que pel mòdul en PHP no és necesari ni les variables d’entorn d’Oracle ni tampoc cap tnsnames.ora perquè la primera informació (var. entorn) la necessita al compilar el mòdul i es passa per paràmetre, i la segona (tnsnames.ora: SID, IP…) sempre es defineix desde el propi codi PHP.

    En canvi si vols fer servir les llibreries d’Oracle per conectar-te via tOra per ex. (o altre aplicació) llavors sí és imprescindible aquesta informació que dius.

  3. Francisco José says:

    Realmente bueno el artículo.
    Muchisimas gracias.
    Me ha funcionado a la perfección.
    En una debian etch solo he tenido que cambiar “pear download oci8” por “pecl download oci8”.

    Un saludo y perdón por no poder hablar en catalán que por lo que veo es el idioma del sitio.

  4. Xavi says:

    Moltes gràcies! M’ha anat fenomenal.

    Només he canviat una cosa: No cal instalar el php-pear per fer una descàrrega… simplement fixant-se amb la URL de l’arxiu a descargar i usar-la amb el wget (estid darrera d’un proxy i ja tenia el wget configurat):

    wget http://pecl.php.net/get/oci8-1.2.4.tgz

Leave a Reply