Old:Installazione e configurazione di Apache, PHP e Oracle: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Riga 169: Riga 169:
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php-source .phps
</IfModule>
</IfModule>
</pre>
Di default, PHP offre il supporto per il DBMS MySQL, mentre nel caso di questa guida esso stato sostituito con il supporto ad Oracle. Questo richiede di modificare alcune direttive presenti nel file php.ini per rendere PHP aderente alla sintassi utilizzata da Oracle. In particolare, MySQL ed Oracle considerano il carattere apice() come delimitatore di stringhe, o di date. Se si deve memorizzare una stringa allinterno di una tabella e questa stringa contiene una o pi occorrenze del carattere apice, entrambi i DBMS ritorneranno un errore a meno di non eseguiate un escape di tale carattere jolly. Questa operazione si rende, ovviamente, necessaria anche per i dati che gli utenti inseriscono, ad esempio, tramite i form di un sito e che poi andranno inseriti allinterno di un database, ma con una importante differenza: MySQL effettua lescape del carattere apice tramite il carattere backslash (\),  mentre Oracle utilizza un ulteriore apice.
PHP consente lescape del carattere apice, se presente nei dati passati tramite GET, POST o persino cookie, per mezzo delle seguenti direttive contenute nel php.ini:
<pre>
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
; Use Sybase-style magic quotes (escape ' with '' instead of ').
magic_quotes_sybase = On
</pre>
Impostando magic_quotes_gpc e magic_quotes_sybase a On si ottiene lescape del carattere apice alla maniera di Oracle, mentre se magic_quotes_sybase viene impostato a Off si ottiene lescape alla maniera di MySQL.
=PEAR=
PHP mette a disposizione delle funzioni che consentono la comunicazione con una base di dati, ma esse dipendono strettamente dal tipo di DBMS con cui le pagine web scritte in PHP devono interagire. Per questo motivo necessario servirsi del framework PEAR (PHP Extension and Application Repository), ossia un repository di package con cui possibile estendere le funzionalit del linguaggio PHP. In particolare, il package DB (ora sostituito dal package MDB2), fornisce unAPI che si frappone tra PHP eil DBMS sottostante, permettendo di slegare un'applicazione web dal DBMS in uso. Il vantaggio che se dovesse rendersi necessaria una migrazione del database verso un DBMS diverso da quello attuale non vi sar l'obbligo di modificare tutte le funzioni che PHP utilizza per interagire con la base di dati, ma solo il protocollo do comunicazione utilizzato (oci8 per Oracle, oppure mysql per MySQL, ecc).
==Configurazione di PEAR==
Conclusa la configurazione di PHP, necessario passare a quella del framework PEAR aggiungendo i pacchetti necessari alla comunicazione con una base di dati gestita tramite Oracle. Le API messe a disposizione da PEAR potranno poi essere sfruttate nelle proprie pagine PHP per slegarsi dal DBMS in uso.
L'aggiunta di un pacchetto in PEAR si esegue con il comando:
<pre>
pear install [nome_pacchetto]
</pre>
tramite cui si pu installare un package prelevandolo direttamente dai repository di PEAR. In particolare, per linterazione di PHP, tramite PEAR, con Oracle, necessario il pacchetto MDB2, consigliato in sostituzione dell'ormai obsoleto package DB. Ad ogni modo di seguito verr indicato come installare entrambi i pacchetti.
Per il package DB:
<pre>
# ./pear install DB
</pre>
Per il nuovo package MDB2, invece:
<pre>
# ./pear install MDB2
# ./pear install pear/MDB2#oci8
</pre>
</pre>