IIS 7 e PHP in Windows Vista con FastCGI

di Marco Dario - 18 gennaio 2009

database sicurezza

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.

Pagine: 12 3

7 commenti

1 Davide Davide domenica 3 maggio 2009, ore 12:23
Ho seguito alla lettera la procedura per la configurazione di PHP su IIS su Vista (io ho la Home Premium).

Quando punto al link
http://localhost/phpinfo.php
Viene fuori un messaggio di errore di pagina non trovata.
Codice errore HTTP 404
Quale è la causa?
2 Erik Erik martedě 5 maggio 2009, ore 15:28
Davide avevo anche io lo stesso problema. Ho provato ad utilizzare il "mapping gestori" del sito Default Web Site al posto di quello più generale e mi ha funzionato. Sto utilizzando Win Vista SP1.
3 giorgio giorgio giovedě 21 maggio 2009, ore 14:38
Ciao
avete provato a configurare IIS7 e PHP e FastCGI usando la Microsoft Web Platform Installer disponibile a questo link http://www.microsoft.com/web/downloads/platform.aspx?
Facilita e automatizza enormemente il compito.

Giorgio
http://www.microsoft.com/italy/nextweb/php
4 sabato 18 luglio 2009, ore 12:06
Domanda... quando si va a personalizzare il file php.ini bisogna togliere i punto e virgola? esempio: questo valore di default sul mio file è gia a uno ";fastcgi.impersonate = 1;" però c'è il punto e virgola iniziale... devo toglierlo?
grazie
5 lunedě 28 dicembre 2009, ore 10:52
La mia felicità iniziale nel vedere phpinfo(); rivelarmi tutte le info sulle specifiche di configurazione del web server è scemata nel momento in cui, provando a stabilire una connessione mysql, mi appare il seguente messaggio d'errore:


HTTP Error 500.0 - Internal Server Error
c:\php\php-cgi.exe - The FastCGI process exceeded configured activity timeout


Ovviamente, i moduli relativi al mysql sono stati abilitati abolendo il punto e virgola nel php ini alle righe specificate anche da questa guida.

Consigli su come posso risolvere ?
6 sabato 20 febbraio 2010, ore 13:47
Complimenti, semplice passaggi e ben illustrati. Mi sono stati parecchio utili.
Grazie.
7 Rams Rams domenica 16 gennaio 2011, ore 20:56
Ciao,

Per coloro hanno problemi di installazione ISS7, PHP e MySql..potete fare riferimento a questo link dove troverete passo passo tutte le fasi d'installazione (in Ingelese):
http://maximumpcguides.com/windows-vista/how-to-create-a-windows-vista-iis7-mysql-php-web-server/
Effettua l'accesso o registrati per inserire un commento