13 Gennaio 2008 - di Filippo Toso
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 nostro sito 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.
