In questo articolo vedremo come installare e configurare il web server IIS 7 (Internet Information Services) di Microsoft in Windows Vista SP1 per ospitare applicazioni PHP impiegando il protocollo FastCGI. Prima di vedere i passi necessari proviamo a chiarire il ruolo di FastCGI nel connubio tra IIS e PHP.
IIS 7, attraverso il modulo FastCGI, è in grado di eseguire programmi (come PHP) che supportano l’omonimo protocollo, garantendo affidabilità ed alte prestazioni. Il protocollo FastCGI è un'alternativa, molto più performante, al CGI (Common Gateway Interface), il sistema classico impiegato dai server web per interfacciarsi con applicazioni esterne.
La differenza dei due approcci, CGI e FastCGI, si basa sulla modalità con cui il server web lancia i programmi esterni. I programmi basati su CGI sono lanciati dal web server ad ogni richiesta dell’utente, al fine di elaborare i dati ricevuti e generare una risposta dinamica da inviare al client (es. il browser). Poiché molti di questi programmi non supportano esecuzioni multi-threaded, IIS per rispondere alle diverse richieste dell’utente è costretto ad eseguire un processo separato per ciascuna di esse. Gli elevati “costi” di avvio e chiusura di un processo ad ogni richiesta influiscono negativamente sulle prestazioni complessive del sistema.
Fino a non molto tempo fa, CGI era l’unico modo affidabile per utilizzare PHP con IIS. Infatti, anche se PHP può essere eseguito in ambiente multi-threaded, molte delle sue estensioni non sono thread-safe. Si deve alla collaborazione tra Zend, azienda che sviluppa PHP, e Microsoft la maturazione del modulo FastCGI per IIS.
FastCGI risolve questo problema fornendo, da un lato, un meccanismo per il riutilizzo di uno stesso processo per rispondere a più richieste utente, dall’altro garantendo la compatibilità con i programmi non thread-safe, nel nostro caso alcune delle estensioni di PHP. Ne vien fuori quindi una architettura molto più performante e, nello stesso tempo, affidabile.