CakePHP (http://cakephp.org/) è un ottimo framework di sviluppo MVC
scritto in PHP. La nuova versione 1.2 rilasciata in beta ad inizio
anno include moltissime funzionalità. Essendo principalmente uno
sviluppatore Windows, mi interessa molto poter eseguire le mie
applicazioni web basate su CakePHP anche sul web server IIS di Microsoft.
Poiché CakePHP utilizza il modulo mod_rewrite di Apache per la
gestione degli URI (es. tramite richieste con PATH_INFO), non esiste
un metodo per eseguirlo su una installazione standard di IIS.
In questo articolo espongo una procedura che permette di configurare
IIS per l'esecuzione di applicazioni web basate sul framework CakePHP.
1. Per prima cosa è necessario scaricare l'URL Rewrite Filter for IIS,
un filtro ISAPI gratuito ed open source che simula il comportamento
del modulo mod_rewrite di Apache. Siccome il sito ufficiale di questo
modulo (http://www.iismods.com) sembra sia stato chiuso, ho pubblicato
sul sito della mia azienda un archivio ZIP con una copia del filtro e
della sua documentazione. Puoi scaricarlo dal seguente indirizzo:
http://www.creativepark.it/downloads/iismod_rewrite.zip
2. Il processo di installazione è piuttosto lineare.
Per prima cosa è necessario copiare i file mod_rewrite.dll e
mod_rewrite.ini in una directory. Per questo articolo utilizzerò
C:\Inetpub\.
Poi si deve aprire l'IIS Management Console. In Windows XP può essere
avviato cliccando su Start -> Pannello di Controllo -> Strumenti
Amministrativi -> Internet Information Services. In alternativa è
sufficiente eseguire il comando
"%SystemRoot%\system32\inetsrv\iis.msc" tramite Start -> Esegui...
Una volta aperto, seleziona il sito web sul quale desideri installare
il filtro, apri il menù Azione e clicca su Proprietà.
Seleziona la scheda Filtri ISAPI e clicca sul pulsante Aggiungi.
Nella finestra di dialogo che verrà visualizzata inserisci un nome per
il filtro (es. URL Rewrite Filter) e seleziona il file mod_rewrite.dll
utilizzando il pulsante Sfoglia... (es. C:\Inetpub\mod_rewrite.dll).
3. Modifica il file mod_rewrite.ini come segue:
Debug 0
Reload 5000
RewriteRule ^/$ /index.php?REQUEST_URI=index.php [L]
RewriteRule ^(.*)$ /index.php?REQUEST_URI=$1 [L]
4. Chiudi la console amministrativa di IIS e riavvia il web server.
Per farlo puoi utilizzare lo script restart_iis.bat incluso
nell'archivio ZIP che hai scaricato, oppure puoi utilizzare la console
di amministrazione di IIS oppure quella dei Servizi.
5. Per finire, aggiungi il seguente codice all'inizio del file
index.php della tua applicazione web basata su CakePHP:
/* Inizio Codice IIS MOD_REWRITE */
$_SERVER['REQUEST_URI'] = $_GET['REQUEST_URI'];
unset($_GET['REQUEST_URI']);
/* Fine Codice IIS MOD_REWRITE */
Se hai seguito le istruzioni correttamente ora dovresti essere in
grado di accedere alla tua applicazione web senza problemi.
--
Vuoi distribuire il tuo sito web su CD/DVD?
Prova http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: http://www.creativepark.it/stage/