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

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 8: Riga 8:
==Installazione==
==Installazione==
Sul sito di Oracle Corp., previa procedura di registrazione, sono disponibili i pacchetti per Debian, Ubuntu, Suse Novell, Red Hat/Fedora e Mandriva di Oracle Database Server 10g XE con una serie di limitazioni rispetto alla versione a pagamento:
Sul sito di Oracle Corp., previa procedura di registrazione, sono disponibili i pacchetti per Debian, Ubuntu, Suse Novell, Red Hat/Fedora e Mandriva di Oracle Database Server 10g XE con una serie di limitazioni rispetto alla versione a pagamento:
* se Oracle Database Server 10g XE viene installato su un computer con più di una CPU (incluse anche le CPU dual core), esso utilizzerà esclusivamente le risorse di una sola CPU
* se Oracle Database Server 10g XE viene installato su un computer con più di una CPU (incluse anche le CPU dual core), esso utilizzerà esclusivamente le risorse di una sola CPU;
* su un singolo computer può essere effettuata l’installazione di una sola copia di Oracle Database Server 10g XE; in aggiunta, gli utenti possono far girare una sola istanza del database Oracle su ciascun computer. Quest’ultima limitazione può comunque essere aggirata in quanto, anche sulla stessa installazione di Oracle Database Server 10g XE possono convivere più schemi, ciascuno dei quali contenente le proprie tabelle. Di fatto, è come se sulla stessa macchina fossero presenti più database simultaneamente
* su un singolo computer può essere effettuata l’installazione di una sola copia di Oracle Database Server 10g XE; in aggiunta, gli utenti possono far girare una sola istanza del database Oracle su ciascun computer. Quest’ultima limitazione può comunque essere aggirata in quanto, anche sulla stessa installazione di Oracle Database Server 10g XE possono convivere più schemi, ciascuno dei quali contenente le proprie tabelle. Di fatto, è come se sulla stessa macchina fossero presenti più database simultaneamente;
* la quantità massima di dati contenuta in un database Oracle Database Server 10g XE non può superare i 4 gigabytes di spazio disco, tuttavia se i dati degli utenti dovessero superare tale quota, il sistema invierebbe l’errore ORA-12592
* la quantità massima di dati contenuta in un database Oracle Database Server 10g XE non può superare i 4 gigabytes di spazio disco, tuttavia se i dati degli utenti dovessero superare tale quota, il sistema invierebbe l’errore ORA-12592;
* la quantità massima di memoria RAM che Oracle Database Server 10g XE utilizza non può eccedere un gigabyte, anche se ne è disponibile una quantità maggiore. La quantità di memoria totale utilizzata dal server Oracle viene ricavata come somma della System Global Area (SGA) e della Program Global Area (PGA) aggregata
* la quantità massima di memoria RAM che Oracle Database Server 10g XE utilizza non può eccedere un gigabyte, anche se ne è disponibile una quantità maggiore. La quantità di memoria totale utilizzata dal server Oracle viene ricavata come somma della System Global Area (SGA) e della Program Global Area (PGA) aggregata;
* il protocollo HTTPS (Secure HTTP) non è supportato nativamente dal listener HTTP presente in Oracle 10g XE, quindi è necessario far uso di un web server, come Apache, che supporti tale protocollo
* il protocollo HTTPS (Secure HTTP) non è supportato nativamente dal listener HTTP presente in Oracle 10g XE, quindi è necessario far uso di un web server, come Apache, che supporti tale protocollo.


Limitazioni a parte, Oracle Database Server 10g XE resta, a mio avviso, un buon prodotto utilizzato con successo, ad esempio, da varie università sul territorio italiano.
Limitazioni a parte, Oracle Database Server 10g XE resta, a mio avviso, un buon prodotto utilizzato con successo, ad esempio, da varie università sul territorio italiano.
Riga 39: Riga 39:
Per procedere in questo senso, è sufficiente lanciare uno script di configurazione delle variabili d’ambiente di Oracle Database Server 10g XE, disponibile in due distinte versioni dipendentemente dalla shell in uso. I due script si trovano nella directory <code>/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/</code> e sono:
Per procedere in questo senso, è sufficiente lanciare uno script di configurazione delle variabili d’ambiente di Oracle Database Server 10g XE, disponibile in due distinte versioni dipendentemente dalla shell in uso. I due script si trovano nella directory <code>/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/</code> e sono:


* oracle_env.sh (valido anche per le shell Bourne e Korn)
* <code>oracle_env.sh</code> (valido anche per le shell Bourne e Korn)
* oracle_env.csh (valido anche per le shell C e tsh)
* <code>oracle_env.csh</code> (valido anche per le shell C e tsh)


Lo script oracle_env.sh, si occupa di impostare una serie di variabili d'ambiente tra cui:
Lo script oracle_env.sh, si occupa di impostare una serie di variabili d'ambiente tra cui:
Riga 50: Riga 50:
* LD_LIBRARY_PATH: il percorso della directory contenente le librerie principali per Oracle Server 10g XE
* LD_LIBRARY_PATH: il percorso della directory contenente le librerie principali per Oracle Server 10g XE


{{Warningbox|Va ricordato che riavviando il computer, i settaggi impostati con lo script oracle_env.sh vengono persi, perciò è buona norma inserire la stringa:
{{Warningbox|Va ricordato che riavviando il computer, i settaggi impostati con lo script <code>oracle_env.sh</code> vengono persi, perciò è buona norma inserire la stringa:


<pre>/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh</pre>
<pre>/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh</pre>
Riga 101: Riga 101:
</pre>
</pre>


il parametro '''--prefix''' passato al comando configure richiede il path in cui verrà installato il web server Apache. Dalla documentazione del web server si legge che il percorso di default da indicare è <code>/usr/local/apache2/</code>.
il parametro <code>'''--prefix'''</code> passato al comando configure richiede il path in cui verrà installato il web server Apache. Dalla documentazione del web server si legge che il percorso di default da indicare è <code>/usr/local/apache2/</code>.
Le impostazioni del server web Apache risiedono nel file '''httpd.conf''' (che si trova nella directory <code>/usr/local/apache2/conf/</code> nel caso sia stata effettuata l'installazione da sorgenti); tale file può essere modificato, disponendo dei privilegi di root, con un qualsiasi editor di testi.
Le impostazioni del server web Apache risiedono nel file <code>'''httpd.conf'''</code> (che si trova nella directory <code>/usr/local/apache2/conf/</code> nel caso sia stata effettuata l'installazione da sorgenti); tale file può essere modificato, disponendo dei privilegi di root, con un qualsiasi editor di testi.
Le direttive da impostare nel file httpd.conf per ottenere un funzionamento minimale del web server Apache sono:
Le direttive da impostare nel file <code>httpd.conf</code> per ottenere un funzionamento minimale del web server Apache sono:


* Listen: consente ad Apache di porsi in ascolto su un determinato indirizzo IP e/o porta
* <code>Listen</code>: consente ad Apache di porsi in ascolto su un determinato indirizzo IP e/o porta
* ServerName: il nome del server, o l'indirizzo IP e il numero di porta che il server utilizza per identificare se stesso
* <code>ServerName</code>: il nome del server, o l'indirizzo IP e il numero di porta che il server utilizza per identificare se stesso
* DocumentRoot: la directory contenente le pagine web delle proprie applicazioni. È anche possibile indicare un alias, o un link simbolico per puntare ad altre locazioni del filesystem.
* <code>DocumentRoot</code>: la directory contenente le pagine web delle proprie applicazioni. È anche possibile indicare un alias, o un link simbolico per puntare ad altre locazioni del filesystem.


Una volta salvate le modifiche apportate al file httpd.conf, si può far partire Apache con il comando:
Una volta salvate le modifiche apportate al file <code>httpd.conf</code>, si può far partire Apache con il comando:


<pre>
<pre>
Riga 115: Riga 115:
</pre>
</pre>


quindi, puntando il proprio browser web all'indirizzo specificato anche con la direttiva '''ServerName''' precedentemente citata, si dovrebbe poter visualizzare la pagina di benvenuto di Apache.
quindi, puntando il proprio browser web all'indirizzo specificato anche con la direttiva <code>'''ServerName'''</code> precedentemente citata, si dovrebbe poter visualizzare la pagina di benvenuto di Apache.


==Installazione e configurazione di PHP==
==Installazione e configurazione di PHP==
Riga 135: Riga 135:
</pre>
</pre>


Come si può notare dal codice precedente, il comando '''configure''' è seguito da una serie di opzioni da attivare nella successiva fase di compilazione:
Come si può notare dal codice precedente, il comando <code>'''configure'''</code> è seguito da una serie di opzioni da attivare nella successiva fase di compilazione:


* --prefix: permette di indicare in quale directory installare PHP
* <code>--prefix</code>: permette di indicare in quale directory installare PHP;
* --with-apxs2: indica che si vuole compilare PHP come un moulo condiviso di Apache
* <code>--with-apxs2</code>: indica che si vuole compilare PHP come un moulo condiviso di Apache;
* --with-config-file-path: indica il percorso dei file di configurazione di Apache
* <code>--with-config-file-path</code>: indica il percorso dei file di configurazione di Apache;
* '''--with-oci8''': abilita il supporto per il DBMS Oracle di cui è necessario indicare il path dell'installazione.
* <code>--with-oci8</code>: abilita il supporto per il DBMS Oracle di cui è necessario indicare il path dell'installazione;
* --enable-sigchild: abilita il gestore dei segnali proprio di PHP
* <code>--enable-sigchild</code>: abilita il gestore dei segnali proprio di PHP;
* --without-mysql: disabilita il supporto al DBMS MySQL, non necessario, visto che si vuole utilizzare Oracle Database Server
* <code>--without-mysql</code>: disabilita il supporto al DBMS MySQL, non necessario, visto che si vuole utilizzare Oracle Database Server.


Il parametro '''--with-oci8''' richiede di specificare il percorso, sul filesystem locale, dell'installazione di Oracle Database Server, se tale installazione è stata effettuata sullo stesso server fisico di Apache e PHP. Se, invece, web server e db server risiedono su due macchine distinte, come spesso accade, allora sulla macchina che funge da server web deve essere installato l'[http://www.oracle.com/technology/tech/oci/instantclient/index.html Oracle Instant Client].
Il parametro <code>'''--with-oci8'''</code> richiede di specificare il percorso, sul filesystem locale, dell'installazione di Oracle Database Server, se tale installazione è stata effettuata sullo stesso server fisico di Apache e PHP. Se, invece, web server e db server risiedono su due macchine distinte, come spesso accade, allora sulla macchina che funge da server web deve essere installato l'[http://www.oracle.com/technology/tech/oci/instantclient/index.html Oracle Instant Client].
I passi da seguire per installare tale software sono molto semplici:
I passi da seguire per installare tale software sono molto semplici:


Riga 157: Riga 157:
</pre>
</pre>


* Creare un link simbolico alle librerie libclntsh.so.10.1 e libocci.so.10.1
* Creare un link simbolico alle librerie <code>libclntsh.so.10.1</code> e <code>libocci.so.10.1</code>


<pre>
<pre>
Riga 164: Riga 164:
</pre>
</pre>


La scompattazione dei due file precedenti crea una directory, contenente i files dell'Oracle Instant Client. Nel mio caso, tale directory si chiama "instantclient_11/", ma il nome potrebbe differire, quindi '''ATTENZIONE'''.
La scompattazione dei due file precedenti crea una directory, contenente i file dell'Oracle Instant Client. Nel mio caso, tale directory si chiama <code>instantclient_11/</code>, ma il nome potrebbe differire, quindi '''ATTENZIONE'''.
Il comando configure precedentemente lanciato per PHP va quindi modificato indicando, con la direttiva '''--with-oci8''', il percorso in cui è stato installato l'Oracle Instant Client:
Il comando configure precedentemente lanciato per PHP va quindi modificato indicando, con la direttiva <code>'''--with-oci8'''</code>, il percorso in cui è stato installato l'Oracle Instant Client:


<pre>
<pre>
Riga 176: Riga 176:
</pre>
</pre>


Per concludere l’installazione di PHP è sufficiente inserire il percorso <code>/usr/local/php/lib/php</code> all’interno del file '''php.ini''', il quale deve essere successivamente copiato dalla directory dei sorgenti di PHP nella directory <code>/usr/local/lib</code> e in <code>/usr/local/apache2/conf/</code> (se Apache è stato compilato da sorgenti).
Per concludere l’installazione di PHP è sufficiente inserire il percorso <code>/usr/local/php/lib/php</code> all’interno del file <code>'''php.ini'''</code>, il quale deve essere successivamente copiato dalla directory dei sorgenti di PHP nella directory <code>/usr/local/lib</code> e in <code>/usr/local/apache2/conf/</code> (se Apache è stato compilato da sorgenti).
Se la compilazione di PHP è andata a buon fine, nel file httpd.conf sarà stata aggiunta in automatico la seguente stringa:
Se la compilazione di PHP è andata a buon fine, nel file httpd.conf sarà stata aggiunta in automatico la seguente stringa:


Riga 183: Riga 183:
</pre>
</pre>


Questa riga indica che Apache ha caricato il modulo per il funzionamento delle pagine web contenenti codice PHP (nella versione 5), tuttavia, per far sì che i browser web interpretino correttamente il codice PHP, è necessario modificare nuovamente il file httpd.conf di configurazione del web server Apache aggiungendo le due righe seguenti all'interno della sezione '''<IfModule mime_module>'''
Questa riga indica che Apache ha caricato il modulo per il funzionamento delle pagine web contenenti codice PHP (nella versione 5), tuttavia, per far sì che i browser web interpretino correttamente il codice PHP, è necessario modificare nuovamente il file <code>httpd.conf</code> di configurazione del web server Apache aggiungendo le due righe seguenti all'interno della sezione <code>'''<IfModule mime_module>'''</code>


<pre>
<pre>
Riga 193: Riga 193:
</pre>
</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 all’interno 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 all’interno di un database, ma con una importante differenza: MySQL effettua l’escape del carattere apice tramite il carattere backslash (\),  mentre Oracle utilizza un ulteriore apice.
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</code> per rendere PHP aderente alla sintassi utilizzata da Oracle. In particolare, MySQL ed Oracle considerano il carattere apice(<code></code>) come delimitatore di stringhe, o di date. Se si deve memorizzare una stringa all’interno 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 all’interno di un database, ma con una importante differenza: MySQL effettua l’escape del carattere apice tramite il carattere backslash (<code>\</code>),  mentre Oracle utilizza un ulteriore apice.
PHP consente l’escape del carattere apice, se presente nei dati passati tramite GET, POST o persino cookie, per mezzo delle seguenti direttive contenute nel php.ini:
PHP consente l’escape del carattere apice, se presente nei dati passati tramite GET, POST o persino cookie, per mezzo delle seguenti direttive contenute nel <code>php.ini</code>:


<pre>
<pre>
Riga 205: Riga 205:
</pre>
</pre>


Impostando “magic_quotes_gpc” e “magic_quotes_sybase” a “On” si ottiene l’escape del carattere apice alla maniera di Oracle, mentre se magic_quotes_sybase viene impostato a “Off” si ottiene l’escape alla maniera di MySQL.
Impostando <code>magic_quotes_gpc</code> e <code>magic_quotes_sybase</code> a <code>On</code> si ottiene l’escape del carattere apice alla maniera di Oracle, mentre se <code>magic_quotes_sybase</code> viene impostato a <code>Off</code> si ottiene l’escape alla maniera di MySQL.


=PEAR=
=PEAR=
Riga 235: Riga 235:
</pre>
</pre>


{{box|Nota Bene:|è necessario ricordarsi di includere il file DB.php, oppure MDB2.php, a seconda del pacchetto installato, all'interno delle proprie pagine PHP per poter utilizzare le funzioni messe a disposizione da questo package per l'interazione con una base di dati Oracle.
{{box|Nota Bene:|è necessario ricordarsi di includere il file <code>DB.php</code>, oppure <code>MDB2.php</code>, a seconda del pacchetto installato, all'interno delle proprie pagine PHP per poter utilizzare le funzioni messe a disposizione da questo package per l'interazione con una base di dati Oracle.
L'istruzione da utilizzare all'inizio del codice PHP è la seguente:
L'istruzione da utilizzare all'inizio del codice PHP è la seguente:


1 508

contributi