This is an old revision of the document!
Connettersi ad un DB Oracle tramite PHP5 e PDO da Linux
Con questa guida descriveremo i passi necessari per connettersi da una macchina Linux, ad un DB Oracle con PHP5 utilizzando PDO (PHP Data Objects).
Installiamo il Client Oracle
Cosa fondamentale per connettersi ad Oracle è necessario avere un Client o in alternativa l'Instant Client.
Per installare l'Instant Client è possibile seguire la guida Oracle Instant Client su Linux.
Compiliamo il driver PDO per Oracle
Scarichiamo dal sito php.net i sorgenti di PHP5 e copiamo il pacchetto nella directory /tmp
e lo scompattiamo:
$ cp php-5.4.30.tar.xz /tmp $ cd /tmp $ tar xvvf php-5.4.30.tar.xz
Adesso spostiamoci nella directory contente i sorgenti del driver PDO per Oracle:
$ cd php-5.4.30/ext/pdo_oci/
Lanciamo il comando phpize
per preparare il necessario alla compilazione del driver:
$ phpize
Adesso lanciamo la compilazione vera e propria passando al configure
il parametro –with-pdo-oci=DIR
dove DIR
è la directory dove si trova il Client o Instant Client Oracle:
Nel caso abbiamo settato la variabile $ORACLE_HOME
:
$ ./configure --with-pdo-oci=$ORACLE_HOME
Altrimenti specifichiamo il path dell'Instant Client con questa sintassi –with-pdo-oci=instantclient,<path>,<versione>
, ad esempio:
$ ./configure --with-pdo-oci=instantclient,/opt/oracle/client/11.2,11.2
Se non abbiamo avuto errori possiamo lanciare la compilazione:
$ make
Al termine della compilazione avremo a disposizione il modulo compilato nella directory modules
. A questo punto possiamo prendere il modulo e copiarlo nella directory di default di PHP con utente root
:
# cp modules/php_oci.so /usr/lib64/php/extensions
Configuriamo PHP5
Prima di poter utilizzare nei nostri script PHP5 il driver OCI appena compilato, dobbiamo caricarlo. Da root
con il nostro editor preferito apriamo il file php.ini
, ed aggiungiamo alla sezione Dynamic Extensions il driver:
extensions=pdo_oci.so
salviamo il file php.ini
e riavviamo Apache HTTPD Server:
# apachectl restart
Adesso che abbiamo caricato il modulo vediamo se è stato caricato correttamente grazie alla nostra immancabile pagina info.php che richiama la funzione php_info()
.
Utilizziamo la classe PDO
Adesso possiamo utilizzare la classe PDO per connettersi al nostro DB Oracle.
// Se stiamo usando l'entry nel tnsnames.ora // possiamo specificare l'istanza Oracle $PDO = new PDO("oci:dbname=orcl", $username, $password); // Se stiamo usando l'instant client possiamo // specificare la macchina, porta e istanza Oracle $PDO = new PDO("oci:dbname=//localhost:1521/orcl", $username, $password);