lunedì 6 ottobre 2008

LAOP: Php e Oracle su Linux

Smanettando con Oracle ho deciso di interfacciarmici con un linguaggio che già conosco e col quale ho realizzato qualche piccola applicazioncina, solitamente usando come backend mySQL.

L'installazione di Oracle su Debian 32bit, e successivo patching alla 10.2.0.4 è stato abbastanza painless. Ho scelto Oracle Database Enterprise Edition, anzichè Oracle XE, per il quale sono forniti binari pacchettizati deb; più che altro per uniformità con la versione che mi ritrovo in ambienti di produzione al lavoro. Tempo fa, lo avevo installato su un HP con Gentoo 64bit e fu dura; questa volta invece tutto liscio.
E' stato sufficiente esportare il display e lanciare la GUI d'installazione con un unico parametro:
#./runInstaller -ignoreSysPrereqs
Questo permette di poter installare senza che venga eseguito il check di sistema operativo e versione; infatti, se non è tra gli OSes supportati, l'OUI (Oracle Universal Installer) esce e quitta.
Per il patching da 10.2.0.1 a 10.2.0.4 è sufficiente fare la stessa cosa descritta qui sopra. Naturalmente ho omesso alcuni passi di preparazione dell'installazione tra cui la creazione dell'utente e l'impostazione dell'ambiente.

Per Apache e Php basta il solito apt-get install. Dopodichè consiglio di verificare che tutto funzioni mettendo il file index.php in /var/www con i contenuti che seguono:
phpinfo():
?>
Manca solo interfacciare PHP a Oracle. Per questo mi son rifatto a una procedura veloce e pulita, descritta sul sito morse.nl

In breve:
#apt-get install php5-dev php-pear
Il secondo fornisce il comando pecl da usare per installare l'estensione Oracle oci8. E' sufficiente passargli la $ORACLE_HOME quando verrà richiesto il PATH dove risiede l'Instantclient. Quest'ultimo sarebbe da installare precedentemente ai pacchetti qui sopra, nel caso la parte server di Oracle risiedesse su un'altro sistema.

Una piccola modifica ancora
#echo "extension=oci8.so" >> /etc/php5/apache2/php.ini
e siamo a posto. Restartando Apache e accedendo di nuovo alla index.php creata prima, è possibile vedere i riferimenti all'estensione oci8.

Questa è una delle possibili configurazioni per poter utilizzare un db Oracle come backend per PHP. Per altre possibilità e un mucchio di informazioni utili in 195 pagine, ci si può rifare al pdf:

The Underground PHP and Oracle Manual

Nessun commento:

Visite