Windows Azure Web Site è un servizio per la realizzazione di siti Internet ad alto livello di scalabilità attraverso Windows Azure, la piattaforma aperta basata sul cloud computing messa a disposizione dalla Casa di Redmond.
La piattaforma offre la possibilità di scegliere il linguaggio di sviluppo che più si adatta al proprio progetto e distribuire quest'ultimo tramite differenti canali tra cui il sistema per il controllo di versione distribuito Git, FTP o secure storage. Pensato in particolare per l'utilizzo di soluzioni Open Source, Web Site rappresenta un ambiente completo per lo creazione e la messa in produzione di Web applications basate su PHP.
Valutazione gratuita del servizio
Chi desiderasse testare Windows Azure Web Site prima di un eventuale acquisto, potrà farlo attivando una versione gratuita della durata di 90 giorni che fornirà tutti gli strumenti necessari per compilare, distribuire e gestire applicazioni Web based.
A supporto della fase di valutazione la casa madre mette a disposizione alcune features a corredo, tra cui 35 Gb per lo storage con un limite pari a 50 milioni di transazioni, un database SQL, la possibilità di effettuare illimitati trasferimenti di dati in entrata (25 Gb in uscita), 128 Mb di cache nonché la possibilità di creare fino a 10 siti Web.
Per accedere alla release di prova sarà sufficiente possedere un Microsoft account, si potrà inoltre reperire la documentazione per l'utilizzo della piattaforma relativamente ai vari tools e linguaggi supportati (tra cui PHP) attraverso gli appositi Developer Center:
La procedura per realizzazione di un sito Web basato su PHP in Azure non presenta particolari differenze rispetto a quelle che prevedono l'utilizzo di linguaggi alternativi, la piattaforma mette poi a disposizione gli strumenti per configurare il proprio ambiente di sviluppo personalizzandolo.
Modificare la versione di PHP utilizzata
Come impostazione predefinita, nel momento in cui viene scritta questa trattazione il servizio presenta un ambiente basato sulla versione 5.3 di PHP, è possibile però attivare le release 5.4 attraverso Portal, l'interfaccia Web per la gestione dei servizi messa a disposizione da Azure; una volta avuto accesso a Portal si potrà creare un primo progetto recandosi nella sezione "Siti Web" e clickando su "Crea Sito Web".
Per la definizione rapida di un sito Web utilizzando le impostazioni predefinite proposte dall'interfaccia, basterà associare ad esso un URL (ad esempio, "htmlit.azurewebsites.net
" nell'immagine precedente) e confermare la creazione del nuovo progetto.
Il riferimento al sito Web definito risulterà disponibile all'interno di una tabella nella quale ogni record potrà essere clickato in modo da accedere agli strumenti per la sua gestione.
Tali strumenti potranno essere attivati grazie ad un menu orizzontale tra le cui voci è presente "Configura".
Essa permetterà di modificare la versione corrente di PHP attraverso la semplice selezione dell'opzione corrispondente e la successiva conferma tramite il pulsante "Salva".
A questo punto sarà possibile verificare l'esito dell'operazione effettuata attraverso il classico file (chiamato ad esempio "info.php") per la chiamata alla funzione phpinfo() che permette di stampare a video tutte le informazioni relative al proprio ambiente PHP:
<?php
phpinfo();
?>
Perché ciò sia possibile bisognerà accedere tramite FTP allo spazio disponibile tramite il servizio; di default l'interfaccia per la gestione dei siti Web creati non presenta un utente FTP predefinito, per cui sarà possibile generarne uno attraverso il reset dei dati di accesso; portandosi quindi sul percorso "Dashboard > Reimposta credenziali di distribuzione
", si aprirà un form attraverso il quale impostare un nuovo nome utente e una password. Tali credenziali potranno essere utilizzate per tutti i siti Web definiti all'interno della propria sottoscrizione.
Per accedere allo spazio FTP disponibile si potrà utilizzare una qualsiasi soluzione client come per esempio FileZilla (Client FTP open source), nello specifico la Root directory del Web server di un sito creato attraverso Azure è contenuta all'interno della cartella denominata "site
" e prende il nome di "wwwroot
".
Una volta caricato il file "info.php
" nella Root, sarà possibile visualizzarne l'output puntando il browser all'indirizzo:
http://nomesito.azurewebsites.net/info.php"
La modifica della versione di PHP è solo una delle possibili personalizzazioni dell'ambiente di sviluppo in Azure Web Site. Tra poco esamineremo le diverse opportunità per la configurazione offerte dalla piattaforma.
Personalizzare la configurazione dell'ambiente PHP
L'ambiente PHP messo a disposizione da Azure non è completamente vincolato a livello di configurazione, si può agire su alcune opzioni purché esse non facciano riferimento alle cosiddette direttive system-level-only, cioè quelle che possono essere impostate soltanto attraverso modifiche dirette a carico del php.ini
o del file di configurazione del Web server.
Per poter alterare i valori associati alle direttive modificabili, sarà necessario ricorrere a dei file user.ini; a partire dalla versione 5.3 di PHP è stato infatti introdotto il supporto per la definizione di file sullo stile dei .htaccess
per Apache attraverso i quali introdurre delle impostazioni di configurazione alternative a quelle predefinite per il linguaggio.
Perché il parser di PHP riconosca il file user.ini
relativo ad un progetto implementato in Azure, esso dovrà essere caricato nella Root del sito. Al suo interno si potranno inserire istruzioni utilizzando la medesima sintassi adottata per le direttive presenti nel php.ini
, come nell'esempio seguente:
memory_limit = 1024M
post_max_size = 500M
date.timezone = Europe/Rome
Perché le modifiche apportate allo user.ini
abbiano effetto immediato sul sito, dobbiamo effettuare un riavvio. Non si tratta di una richiesta dovuta alla piattaforma di Microsoft ma al fatto che tali file sono regolati attraverso un'impostazione a livello di sistema, denominata user_ini.cache_ttl
, impostata in modo predefinito per effettuare una scansione ogni 300 secondi; il riavvio determinerà una nuova lettura dello user.ini
e la ricezione delle relative istruzioni a conclusione del parsing.
In alternativa ai file user.ini
sarà possibile utilizzare la funzione ini_set()
di PHP.
Abilitare estensioni PHP su Azure
Nell'installazione di PHP presente in Azure sono disponibili tutte le estensioni più diffusamente utilizzate a supporto del linguaggio, ma, se desideriamo nuove librerie a quelle già fornite, possiamo seguire la semplice procedura prevista per l'integrazione.
Il primo passaggio prevede la creazione di una cartella denominata "bin
" all'intero della della Webroot
, fatto questo bisognerà caricare in questa directory la libreria relativa all'estensione scelta, verificando che essa sia compatibile sia con la release di PHP correntemente utilizzata sia con Windows VC9 (32bit e 64bit). Il compilatore di Azure, che lavora su Windows RT, è infatti MSVC9 basato su Visual C++ 2008.
Per esempio possiamo scaricare da GitHub l'estensione PHP per MongoDB, un database NoSQL. Una volta scaricato ed estratto il contenuto dall'archivio compresso, carichiamo la DLL in "bin
".
Fatto ciò, clicchiamo sulla voce "Configura" nell'interfaccia di gestione di Azure e cerchiamo la sezione denominata "Impostazioni app"; qui si potrà creare una chiave denominata "PHP_EXTENSIONS
" a cui associare come valore il percorso alla libreria caricata che, nel nostro esempio sarà:
bin/php_mongo-1.3.1-5.2-vc9.dll
Una volta cliccato su "Salva" sarà possibile verificare l'attivazione dell'estensione da browser attraverso il file "info.php" precedentemente creato.
Azure consente l'inserimento di tutte le PHP_EXTENSIONS
desiderate (fatte salve le considerazioni relative alla compatibilità) tramite la specifica della coppia chiave/valore che verrà caricata dalla Web application in avvio.
Configurare un ambiente PHP alternativo a quello di default
Azure Web Site consente anche la configurazione di una ambiente PHP diverso da quello fornito in modo predefinito dal servizio; per soddisfare questa particolare esigenza bisognerà innanzitutto recarsi sul repository delle versioni di PHP compatibili con Windows VC9 e scaricare la release desiderata facendo attenzione, come nel caso delle estensioni, che si di tipo "non-thread-safe"; nel caso specifico dell'esempio riportato in questo articolo è stata utilizzata la versione "PHP 5.4.12 VC9 x86 Non Thread Safe".
Ai fini dell'adattamento al proprio progetto, l'utilizzatore potrà editare il file php.ini della release scaricata ed eventualmente decommentare le direttive relative alle estensioni desiderate; fatto questo, sarà necessario creare una cartella "bin
" all'interno della Webroot, se non già presente, e di seguito generare in essa una sotto-directory (chiamata ad esempio "php
"), nella quale caricare il package della versione scelta del linguaggio.
Una volta fatto, clicchiamo sul pulsante "Configura
" dell'Azure Portal e ricercare la sezione denominata "Mapping handler
" per poi compilare i campi presenti con i parametri richiesti; si dovrà quindi indicare "*.php
" come estensione e il percorso all'eseguibile di PHP quale "Percorso processore script". Nel caso dell'esempio corrente il percorso sarà:
D:homesitewwwrootbinphpphp-5.4.12-nts-Win32-VC9-x86php-cgi.exe
Fatto questo possiamo cliccare sul pulsante "Salva" e aprire nuovamente da browser il file "info.php" per verificare l'esito relativo all'installazione del nuovo ambiente PHP.
Se il nuovo runtime sarà eliminato, Azure non farà altro che rimettere a disposizione la configurazione di default comprese le modifiche effettuate a suo carico.
Conclusioni
In questa parte della nostra trattazione su Azure Website come piattaforma per lo creazione di Web applicatins in PHP, sono state affrontate le tematiche relative alla configurazione dell'ambiente di sviluppo; nella prossima parte verrà proposto un esempio pratico di applicazione PHP realizzata su Azure.