La linea di demarcazione tra IIS (Internet Information Services), il web server di Microsoft, ed un linguaggio di scripting qual è PHP si è ormai fatta sempre più sfumata. La società di Redmond ha da qualche tempo messo a disposizione un prodotto gratuito battezzato Web Platform 2.0. Come viene ricordato dalla stessa azienda, la Web Platform si propone come un “ecosistema completo per la creazione e l’hosting di siti, servizi ed applicazioni web“. Il pacchetto d’installazione della Web Platform (scaricabile cliccando qui), infatti, combina il supporto di strumenti server e tecnologie particolarmente utilizzate ed apprezzate con la possibilità di configurare ed installare le più comuni applicazioni web: piattaforme CMS per la realizzazione e la gestione di contenuti, strumenti per la messa a punto di blog e progetti editoriali, di forum e wiki.
Nella Web Platform 2.0, ASP.NET e PHP – una volta agli antipodi – possono essere utilizzate “senza soluzione di continutità”, sullo stesso web server. Il matrimonio tra IIS e PHP è stato sancito, ormai da tempo, grazie a FastCGI: si tratta di un componente che funge da interfaccia tra il motore PHP ed il server web di Microsoft assicurando un’esecuzione del codice PHP molto più performante rispetto alla soluzione CGI (Common Gateway Interface) e molto più affidabile rispetto ad ISAPI. FastCGI fa compiere un deciso salto in avanti in ambiente Windows offrendo la possibilità di mettersi alle spalle la lentezza di CGI, tecnologia standard usata dai web server per interfacciarsi con applicazioni esterne. In pratica, è possibile far sì che il server web possa interagire con qualunque applicazione esterna, effettuare un qualche tipo di elaborazione e restituire l’output al browser dell’utente (client) collegato. FastCGI permette di ridurre drasticamente i tempi di caricamento di uno script PHP perché l’applicazione esterna richiamata viene invocata una sola volta, evitando quindi che il web server debba ripetere l’operazione ad ogni connessione di un client (altre informazioni su FastCGI).
Il pacchetto d’installazione della Web Platform integra tutto il necessario per il correto funzionamento del prodotto. Prima di avviare il programma d’installazione (wpilauncher.exe
), tuttavia, è bene verificare che non vi siano aggiornamenti di Windows (funzionalità Windows Update) in attesa di essere installati. Diversamente, eseguendo il file d’installazione della Web Platform, protrebbe essere visualizzato un errore che impedirà l’avvio della procedura di caricamento della piattaforma sul sistema in uso. A tal proposito, nel caso in cui dovesse essere presentato un messaggio d’errore, è possibile digitare %temp%\webpi_launcher.txt
in Start, Esegui…: in questo modo si potranno verificare le ragioni della mancata installazione del pacchetto.
In alternativa, cliccando qui (versione x86) oppure qui (versione a 64 bit), si potranno scaricare i pacchetti d’installazione completi.
La Microsoft Web Platform è compatibile con Windows XP SP2/SP3, Windows Server 2003 SP1+, Windows Vista, Windows Server 2008 e Windows 7.
Una volta avviata l’installazione della piattaforma di Microsoft (in italiano, “Piattaforma Web 2.0), verrà presentata una nuova finestra che invita a scegliere quali componenti debbano essere caricati sul sistema in uso. Cliccando sulla scheda Novità, vengono elencate tutte le soluzioni software aggiunte alla seconda versione della Web Platform.
Nella lista sono inserite tecnologie e componenti già in versione finale oppure prodotti ancora in fae di beta testing e non ancora disponibili nella release definitiva.
Nella sezione Piattaforma web sono raccolti il web server IIS insieme con i componenti utilizzabili in abbinamento. Cliccando sui vari link Personalizza si possono individuare, ad esempio, il .NET framework per l’attivazione del supporto ASP.NET, il runtime di PHP, il Windows Cache Extension per PHP 5.2, il DBMS SQL Server Express 2008 SP1 e così via.
Facendo riferimento alla sezione Applicazione web è possibile addirittura installare, direttamente dalla Web Platform di Microsoft, le più famose ed apprezzate applicazioni. I prodotti supportati sono molti: tra i nomi principali, WordPress, Drupal, phpBB, DotNetNuke, Joomla! e SugarCRM.
La Web Platform di Microsoft propone ovviamente l’installazione di differenti versioni del web server IIS a seconda della specifica versione di Windows in uso (in Windows 7 e Windows Server 2008 R2 viene impiegato IIS 7.5, in Windows Server 2008 e Windows Vista IIS 7.0, in Windows Server 2003 e Windows XP Professional x64 IIS 6.0, in Windows XP Professional IIS 5.1).
Alcuni moduli, inoltre, potrebbero non essere disponibili su alcune versioni di Windows: è il caso di “URL Rewrite” – non disponibile sui sistemi Windows XP – che può essere utilizzato per inviare al client un indirizzo diverso per la pagina web correntemente visualizzata rispetto a quello che l’applicazione impiega realmente. Moduli del genere sono di solito sfruttati per mettere in pratica tecniche SEO (Search engine optimization) in modo tale da inserire, ad esempio, termini di ricerca ed espressioni in grado di riflettere il contenuto della pagina direttamente nell’URL. Un modulo come “URL Rewrite” può anche rendere gli indirizzi più facilmente intellegibili e ricordabili.
Per eseguire applicazioni PHP in Windows senza problemi, suggeriamo di cliccare su Personalizza in corrispondenza di Server web ed attivare le caselle corrispondenti ad Internet Information Services ed a FastCGI.
L’installazione del motore PHP si concretizza invece accedendo alla sezione Framework e runtime cliccando, al solito, su Personalizza. Qui è possibile richiedere l’installazione della più recente versione di PHP supportata dalla Web Platform di Microsoft. Suggeriamo anche di spuntare la casella corrispondente a Windows Cache Extension per PHP 5.2: si tratta di un utilissimo componente che permette di aumentare in modo significativo la velocità di esecuzione degli script PHP. Ciò viene effettuato grazie al mantenimento di un’area di cache che conserva il contenuto dei file PHP in forma compilata. In questo modo, il web server dovrà effettuare il maggior carico di lavoro solamente una volta: le successive richieste della medesima pagina PHP avverranno in maniera pressoché istantanea grazie alla consultazione della cache.
La schermata successiva riassume la lista dei pacchetti software che saranno scaricati da Internet ed installati sul sistema in uso. Nel caso di PHP e della Windows Cache Extension il download avviene dai server di Sourceforge, dalle pagine mantenute dagli sviluppatori.
La fase d’installazione dei vari prodotti è rapida e si svolge senza intoppi: mentre si procede al download dei pacchetti da Internet, la Web Platform provvede contemporaneamente ad installare il server web IIS, sui sistemi ove risulti vacante.
E’ interessante notare come la procedura d’installazione della Web Platform si faccia carico di verificare tutte le dipendenze in essere tra i vari componenti: scegliendo di installare PHP, ad esempio, viene abilitato il caricamento delle FastCGI. Addirittura, richiedendo immediatamente l’installazione di un’applicazione web come Joomla! o WordPress, il setup della Web Platform provvede ad attivare le altre dipendenze come, ad esempio, PHP.
Utilizzo di PHP ed installazione delle più famose applicazioni web
Ad installazione ultimata, IIS è già in grado di supportare ed eseguire qualunque script PHP. Per verificarlo, basta creare – ad esempio nella directory “root” del web server (di solito, c:\inetpub\wwwroot
) – un file info.php
copiandovi al suo interno quanto segue:
<?php
phpinfo();
?>
Digitando, nel browser web, http://localhost/info.php
dovrebbe essere immediatamente restituita la pagina contenente le informazioni sul motore PHP e sulle estensioni attivate.
Scorrendo la pagina, è possibile verificare anche la corretta attivazione dell’estensione per il caching dei file PHP.
Come indicato nella pagina delle informazioni di PHP, il file di configurazione php.ini
è conservato, per default, nella cartella c:\Programmi\PHP
. Tale file è comunque già ottimizzato per l’utilizzo del runtime PHP in ambiente Windows.
Purtuttavia, aprendolo con un editor di testo e portandosi alla fine del file, si noterà l’elenco delle estensioni caricate. Il caricamento delle estensioni ritenute inutili può essere disattivato anteponendo il carattere ;
innanzi a ciascuna di esse.
Una volta effettuata quest’operazione (previo riavvio di IIS: IISRESET /restart
da prompt dei comandi), l’estensione non sarà più caricata e non verrà più indicata nella schermata generata da phpinfo()
.
Accedendo alla finestra di configurazione di IIS, portandosi nelle proprietà del server web, accedendo alla scheda Home directory quindi cliccando sul pulsante Configurazione… in basso, si noterà l’aggiunta di una nuova estensione (.php
) nel riquadro “Mapping applicazioni”. Tale estensione, a cui fanno capo tutti gli script PHP, viene gestita dalla libreria c:\windows\system32\intesrv\fcgiext.dll
.
Ricorrendo nuovamente alla procedura d’installazione della Web Platform di Microsoft, si può adesso pensare di caricare e configurare un DBMS come SQL Server 2008 nella versione Express, completamente gratuita. Se si fosse interessati ad installare subito un’applicazione web, si può selezionarla dalla sezione Applicazioni web della Web Platform e cliccare sul pulsante Installa. Ove necessario, come nel caso di WordPress, la Web Platform provvederà anche a scaricare ed installare il DBMS MySQL.
La configurazione della “community edition” di MySQL, così come quella dell’applicazione web, è effettuabile senza lasciare la Web Plataform. Attraverso la piattaforma web di Microsoft si può, per esempio, creare un nuovo database MySQL per la memorizzazione dei dati e specificarne le credenziali di accesso utilizzabili dall’applicazione, sia essa WordPress, Joomla, phpBB od un altro prodotto.
Selezionando WordPress dalla scheda Applicazione web della Web Platform quindi scegliendo Installa, verrà automaticamente predisposto il download e la configurazione di MySQL Windows Essentials 5.1 e del connettore MySQL Connector/Net 5.2.
Mediante la schermata seguente, si potrà specificare la password da assegnare all’utente “root” per l’accesso a MySQL.
Il passo successivo consiste nello specificare le informazioni sul sito web in corso di creazione ossia i parametri da utilizzare per la configurazione di IIS (nome dell’applicazione, nome del sito web, percorso in cui i file dell’applicazione web devono essere memorizzati, indirizzo IP, porta, nome host).
Cliccando sul pulsante Continua, si può scegliere la tipologia di database da utilizzare e se creare o meno una nuova base dati. Nella casella Password amministratore di database si può specificare la password dell’account “root” scelta in precedenza: l’account sarà utilizzato per creare o comunque configurare il database che verrà utilizzato da parte dell’applicazione web. Più sotto (Nome utente di database e Password database) si possono indicare il nome utente e la password che verranno utilizzati per l’accesso al database dell’applicazione web. Tali informazioni verranno automaticamente inserite nel file wp-config.php
di WordPress e saranno utilizzate per accedere al database MySQL.
Al termine dell’installazione, cliccando su Avvia WordPress, verrà immediatamente aperto il browser che si connetterà al sito web locale appena creato in IIS.
A questo punto comparirà la schermata di configurazione di WordPress.
Uno strumento come Microsoft Web Platform 2.0 non esime l’utente dall’effettuare tutte quelle operazioni di “fine tuning” che sono sempre indispensabili. Il pacchetto consente tuttavia di semplificare enormemente le operazioni legate alla configurazione di tutti i principali aspetti legati alla configurazione ed al corretto funzionamento di un’applicazione web, sia essa realizzata in PHP od in ASP.NET.