Abbiamo un cliente con un web server di tipo IIS6, quindi con sistema operativo Windows 2003 e tecnologia lato server ASP.NET. Perfetto! Ma questo cliente ha sentito parlare di OpenSource e vuole che implementiamo la sua applicazione con PHP. Paradossale? Può darsi... Ma non troppo.
Quali che sia il pretesto possiamo trovarci nella condizione di dover far girare PHP sul server di Redmond. Rimbocchiamoci le maniche e cominciamo.
Reperimento informazioni e materiale
Possiamo iniziare indicando al nostro server come elaborare le pagine con estensione ".php" e per farlo installiamo il relativo modulo.
Puntiamo il browser all' indirizzo www.php.net dal quale possiamo reperire l'installer per Windows del modulo PHP. Scegliamo la versione più aggiornata e stabile, (attualmente siamo alla 5.2). Oltre al file d'installazione dobbiamo scaricare anche i moduli aggiuntivi PECL, per sicurezza. Vedremo in seguito come aggiungerli alla nostra configurazione.
Installazione
Per procedere con l'installazione di PHP, mandiamo in esecuzione il file di setup che abbiamo appenda scaricato.
Una volta avviato, la prima informazione che ci viene chiesta è la posizione di PHP nella macchina ospite. Nell'esempio che abbiamo fatto scegliamo di usare come percordo d'istallazione la cartella C:Program FilesPhp
che impostaremo anche nella configurazione delle variabili di ambiente. In ogni caso il suggerimento è quello di utilizzare un percorso semplice come c:php
.
A questo punto dell'installazione dobbiamo indicare la tipologia di server sul quale inseriremo le nostre pagine PHP. Abbiamo a che fare infatti con una tecnologia multipiattaforma, il setup prevede quasi tutti i web server più noti. Nel nostro caso scegliamo ovviamente IIS. Selezioniamo la tipologia IIS ISAPI MODULE
e premiamo continua. In questo modo andiamo ad aggiungere finalmente il modulo ISAPI al nostro IIS.
Configurazione
Prima di cominciare a scrivere del buon codice PHP, dobbiamo sicerarci che il setup sia andato a buon fine. Dalla versione 5.2 sia le variabili di ambiente, sia i file di configurazione vengono inizializzati automaticamente, ma vediamo comunque quali sono le impostazioni corrette nel caso qualcosa fosse andato storto.
Il Registro
Per prima cosa controlliamo che il setup abbia creato una chiave di registro utile a windows per individuare la cartella dove risiede PHP. Controlliamo la chiave:
Chiave di registro per PHP
[HKEY_LOCAL_MACHINESOFTWAREPHP]
"IniFilePath"="C:\PHP"
Se questo valore non è presente, lo possiamo inserire creando un nuovo file con estensione ".reg" ed inserendo la stringa sopra. Mandando in esecuzione questo file sarà automaticamente generata una nuova chiave di registro con il valore desiderato.
I permessi NTFS
Il secondo passo è quello di fornire le autorizzazioni ad IIS per accedere alla cartella dove è presente PHP. Vi ricordo che per ogni web server IIS è presente a sistema un utente chiamato IUSR_[NOMEMACCHINA]
. Questo è l'utente predefinito con il quale IIS accede a cartelle e file presenti nel computer. Andiamo quindi nella nostra cartella PHP e se non li possiede già, assegnamo i permessi di lettura, scrittura ed esecuzione a questo utente.
Configurare IIS6
Nell'ultima versione 5.2 di PHP la parte di configurazione legata proprio ad IIS6 viene eseguita autonomamente, ma per capire meglio le impostazioni possiamo controllare come è stato impostato il nostro web server.
Tramite gli "Strumenti di Amministrazione" di Windows 2003 possiamo accedere alla console per configurare IIS. Andiamo nell'elenco del sito Web predefinito ed apriamo il nodo "lega alle estensioni web".
Dobbiamo controllare, nell'ordine, che: il modulo PHP sia correttamente installato e che punti alla dll php5isapi.dll
. Se così non fosse apriamo le proprietà del modulo Php e lo configuriamo correttamente.
Verifichiamo poi che la nostra applicazione di test sia pronta per eseguire PHP. Non ci resta che impostare correttamente i permessi sulla cartella ed eseguire la nostra prima pagina. In questo caso nella prima pagina possiamo scrivere semplicemente questo codice: <?phpinfo();?>
. Se tutto funziona correttamente vederemo una tabella che ci indica la versione di Php installata nella macchina. Al contrario vuol dire che ci sono dei problemi di comunicazione tra Php ed IIS.
Comunicazione tra Php ed IIS
Questa sezione è dedicata esclusivamente a chi non fosse riuscito, nei passaggi precedenti, ad eseguire correttamente la prima pagina PHP. Apriamo il prompt di DOS e posizionamoci nella root dove abbiamo installato PHP. A questo punto proviamo ad eseguire il comando
C:php>php.exe -i > prova.html
Se la pagina viene creata, con all'interno le informazioni legate alla versione di PHP, allora è un semplice problema di interfacciamento. Vediamo come risolverlo.
In DOS esiste un comando che si chiama cscript grazie al quale siamo in grado di sapere quali estensioni sono presenti nel sistema. Eseguendo
cscript IisExt.vbs /ListFile
ci vengono elencate tutte le estensioni presenti a sistema. Se l' estensione PHP è assente, dobbiamo rieseguire l' installazione.