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

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”)
Un commento finora
Rispondi

GoodWeb
Cerca e ricerca, sono capitato sul tuo post, interessante…
Nonostante sia passato quasi un’anno dala pubblicazione, potresti darm un LINK funzionate per scaricare sqlite dll per php 4.3.1 su wk2.
Sto impazzendo, sebra che sia stato cancellato dall’intero web…..
Scusa e grazie