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
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 ).
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.
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.
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