PHP: personalizzazione file “Php.ini”, test finale e abilitazione estensioni.

Tornate alla directory C:\php, rinominate il file php.ini-recommended in php.ini. Questo d’ora in poi sarà il file attraverso il quale potrete modificare alcuni comportamenti dell’interprete Php: consente di abilitare nuove estensioni, restringere o allentare alcune impostazioni legate alla sicurezza e definire molte altre impostazioni.

Aprite il file con un editor di testo (ricordiamo sempre di effettuare prima un backup) e, se avete tempo e voglia, leggete con attenzione i commenti inseriti tra le direttive, si tratta di una vera e propria miniera di informazioni sul funzionamento di Php. Per il momento dovete applicare solo tre modifiche.

Per prima cosa trovate la direttiva extension_dir

 

; Directory in which the loadable extensions (modules) reside.
extension_dir = “./”
e cambiatela come segue

 

extension_dir = “C:/php/extensions”
In questo modo abbiamo indicato all’interprete dove cercare le estensioni che prima o poi vorremo attivare. - Php5: la directory che contiene le estensioni si chiama ext, quindi dobbiamo sostituire la riga come segue:

Valido solo per Php 5

extension_dir = “C:/php/ext”
In secondo luogo scorrete ancora il file verso il basso, fino alla blocco seguente

 

; Print out errors (as a part of the output). For production web sites,
; you’re strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.

display_errors = Off
sostituendo Off con On potremo vedere gli errori generati dagli script, caratteristica indispensabile in ambiente di sviluppo.

In ultimo scendete ulteriormente fino alla direttiva

 

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use Php’s session functions.

;session.save_path = /tmp
Questo blocco indica a Php dove salvare i file in cui vengono memorizzati i dati di sessione. Le sessioni sono un argomento un po’ complesso ma sicuramente prima o poi bisognerà servirsene, quindi meglio agire subito e modificare la riga come segue, eliminando cioè il “;” per decommentare la direttiva.

 

session.save_path = C:/php/sessionfiles
sessionfiles è una directory vuota che dovete subito creare in C:\Php (o dove preferite purchè sia dotata di permessi che consentano a Php la creazione e la scrittura di file al suo interno).

riavviare Apache attraverso i tool visti in precedenza (è sempre necessario riavviare Apache per rendere effettive le modifiche ai file httpd.conf e php.ini, questo perchè l’interprete Php ora è parte dello stesso Web Server) e controllare che tutto funzioni.

Se non ci sono errori o warning è quasi giunto il momento di festeggiare, non senza testare il primo script .php. Create dunque nella DocumentRoot (nel nostro esempio C:\www) un file chiamato test.php che contenga una sola semplicissima riga

 

<?php phpinfo() ; ?>

la funzione phpinfo() invia all’output una miriade di informazioni sulla configurazione di Php, richiamando la pagina dal browser (http://localhost/test.php) dovremmo vedere la schermata in figura 5.

 

Figura 5. Risultato a video della funzione phpinfo

Risultato a video della funzione phpinfo

Se qualcosa fosse andato storto, eliminiamo i file httpd.conf e php.ini modificati, ripristiniamo quelli di backup e ripetiamo tutte le operazioni dall’inizio.

Quando compiliamo Php in Linux possiamo scegliere se includere alcune librerie diretamente nel “core” dell’interprete o se abilitarle come moduli esterni (i cosiddetti “shared objects”), nel caso del pacchetto precompilato per Windows non abbiamo l’imbarazzo della scelta: tutte le estensioni che non sono ritenute indispensabili si trovano in file .dll esterni (contenute nella directory extensions descritta nel precedente paragrafo).

Se desideriamo dotare Php di queste funzionalità aggiuntive è indispensabile attivare le rispettive estensioni nel file php.ini, decommentando le righe che ci interessano nel lungo elenco di file .dll. Abbiamo già visto che i commenti si eliminano cancellando il punto e virgola ( ;) all’inizio della riga.

 

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; … or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.

Con ogni probabilità vorremo attivare almeno l’estensione php_gd2.dll per la gestione delle immagini. Esiste inoltre una serie di estensioni che non vengono incluse nel package standard Php (in quanto sono in continua evoluzione), queste librerie vanno a comporre il grande serbatoio del PECL (si veda anche il nostro articolo dedicato a Pear e Pecl).

Le versioni precompilate per Windows sono scaricabili dal sito snaps.php.net; se, ad esempio, volessimo dotare Php 4 del supporto per il database SQLite (una sorta di Ms Acces ma open source e disponibile di default in Php 5) dovremmo scaricare il file php_sqlite.dll , copiarlo in C:\php\extensions e inserire nel file php.ini l’istruzione:

 

extension=php_sqlite.dll
Dopo aver riavviato il Web Server il solito phpinfo() ci dirà se l’estensione è stata abilitata con successo o meno. Per maggiori informazioni su SQLite consigliamo la lettura degli articoli Php e SQLite, una piccola grande novità e SQLite: mini-guida all’uso, pubblicati entrambi su HTML.it.
- Php 5: SQLite è integrato nel core dell’interprete e le estensioni PECL sono disponibili direttamente in www.php.net (”Collection of PECL modules”)

Nessun commento

No comments yet

Leave a reply