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

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.

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

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);
  • how-to/php-and-oracle-with-pdo-oci.1405688968.txt.gz
  • Last modified: 10 years ago
  • by Giuseppe Di Terlizzi