PHP: personalizzazione file “Php.ini”, test finale e abilitazione estensioni.
Posted on Dicembre 20, 2007
Filed Under Apache, TUTORIAL, database, mysql, php, programmare, script, web, web server |
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”)
Leave a Reply