Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Virtualizzazione di uno stack Windows, IIS e PHP/MySQL su Azure

Link copiato negli appunti

La piattaforma per il cloud computing Azure permette di creare Macchine Virtuali basate su Linux o Windows in modo da consentire la generazione di ambienti adatti allo sviluppo di progetti di natura differente; se si desidera realizzare un'applicazione PHP, in grado di interagire con il DBMS MySQL, utilizzando IIS come Web server su Windows, è possibile configurare in Azure uno stack apposito attraverso le semplici procedure descritte in questa trattazione.

Generare una macchina virtuale Windows in Azure

Portal, l'interfaccia visuale di Azure per la gestione del servizio, consente di generare velocemente una Macchina Virtuale basata su Windows seguendo il percorso "Macchine Virtuali > Nuovo" e scegliendo l'opzione "Creazione rapida"

Figura 1. Creazione rapida di una Macchina Virtuale

Creazione rapida di una Macchina Virtuale

Verrà così messo a disposizione un form attraverso il quale definire il nome DNS da associare alla Macchina Virtuale, l'immagine del sistema operativo desiderato, la dimensione espressa in GB dello spazio disco da virtualizzare, il nome dell'utente che accederà alla macchina tramite password (da confermare) e l'area geografica di riferimento per l'installazione.

Il nome DNS è un parametro che diventerà il prefisso dell'URL relativo alla macchina (ad esempio "iishtml.cloudapp.net" nel caso in cui il nome scelto sia "iishtml"); la scelta dei sistemi operativi è abbastanza ampia, per quanto riguarda le piattaforme Microsoft si potrà scegliere tra alcune versioni di Windows Server, SQL Server, BizTalk Server e SharePoint server.

Le impostazioni scelte potranno poi essere confermate clickando su "Crea Macchina Virtuale", una volta conclusosi il processo di generazione, i riferimenti alla nuova macchina saranno presenti all'interno dell'elenco fornito da Portal.

Figura 2. Elenco delle Macchine Virtuali disponibili in Azure

Elenco delle Macchine Virtuali disponibili in Azure

L'opzione alternativa a quella rapida è la creazione "Da raccolta", essa permetterà in primo luogo di selezionare il sistema operativo della Macchina Virtuale, le piattaforme tra le quali scegliere saranno le stesse disponibili attraverso l'opzione alternativa.

Figura 3. Selezione del sistema operativo da virtualizzare

Selezione del sistema operativo da virtualizzare

Il passaggio successivo richiederà di completare un modulo tramite il quale scegliere la release dell'immagine ISO da utilizzare (è comunque consigliabile optare per l'ultimo aggiornamento disponibile), un nome da assegnare alla Macchina Virtuale (breve ma il più descrittivo possibile), un nome utente nonché la relativa password per l'autenticazione e la dimensione dello spazio disco da virtualizzare.

Figura 4. Opzioni per la configurazione della Macchina Virtuale

Opzioni per la configurazione della Macchina Virtuale

Il terzo passaggio previsto dalla procedura riguarderà le modalità della Macchina Virtuale, essa infatti potrà essere autonoma, e quindi non connessa ad altre macchine, o connessa ad una Macchina Virtuale preesistente per bilanciare il carico di traffico diretto verso l'applicazione; sarà poi possibile scegliere l'account di archiviazione da utilizzare e l'area geografica di riferimento per il sistema virtualizzato.

Figura 5. Definizione delle modalità della Macchina Virtuale

Definizione delle modalità della Macchina Virtuale

L'ultima fase prevista sarà quella relativa alla creazione di un "Set di Disponibilità", cioè di un insieme di Macchine Virtuali distribuite fra vari domini di errore e di aggiornamento con lo scopo di assicurare il funzionamento di un'applicazione limitando l'influenza dei punti di errore.

Figura 6. Creazione di un Set di Disponibilità

Creazione di un Set di Disponibilità

Superato anche quest'ultimo passaggio, l'ennesima Macchina Virtuale generata dall'utilizzatore sarà raggiungibile attraverso l'elenco fornito dall'interfaccia di gestione del servizio.

Figura 7. Inserimento in elenco della nuova Macchina Virtuale

Inserimento in elenco della nuova Macchina Virtuale

Connessione alla Macchina Virtuale

Una volta creata una Macchina Virtuale, sarà possibile connettersi ad essa selezionandola dalla lista presente in Portal e clickando sul pulsante "Connetti" situato nel menù posizionato a fondo pagina.

Figura 8. Pulsante per la connessione alla Macchina Virtuale
Pulsante per la connessione alla Macchina Virtuale

Fatto questo, il sistema procederà con il recupero del necessario file RDP (Remote Desktop Protocol), verrà quindi visualizzata una richiesta di apertura o salvataggio di tale file in locale.

Figura 9. Download del file per l'accesso remoto
Download del file per l'accesso remoto

Clickando sul file scaricato verrà lanciata la procedura per l'accesso remoto e si potrà procedere tramite il pulsante "Connetti" che permetterà di visualizzare il form per il login alla Macchina Virtuale.

Figura 10. Autenticazione da locale nel sistema virtualizzato
Autenticazione da locale nel sistema virtualizzato

Superata anche la fase per l'autenticazione, sarà finalmente possibile accedere in modalità visuale al sistema operativo virtualizzato (Windows Server 2008 R2 nell'esempio) che potrà essere gestito da locale attraverso un'apposita finestra.

Figura 11. Accesso al sistema operativo virtualizzato
Accesso al sistema operativo virtualizzato

Tale finestra sarà lo strumento attraverso il quale completare le operazioni necessarie per la creazione di uno stack Windows Based finalizzato alla realizzazione di un ambiente per il funzionamento delle applicazioni PHP.

Installazione di PHP

Il sistema operativo virtualizzato permetterà di utilizzare il browser Web Internet Explorer attraverso il quale scaricare la versione di PHP dedicata alle piattforme Windows (http://www.php.net/downloads.php); nel caso specifico di questa trattazione è stata utilizzata la release VC9 x86 Non Thread Safe di PHP 5.4.14.

PHP per Windows è contenuto in un archivio compresso in formato Zip che dovrà essere scompattato, l'immagine seguente mostra la directory del package decompresso salvata all'interno del disco "C" e rinominata semplicemente in "php" (percorso "C:php"):

Figura 12. Salvataggio della directory di PHP nel disco "C"
Salvataggio della directory di PHP nel disco "C"

All'interno di tale cartella è presente un file denominato "php.ini-production" che dovrà essere editato per poi applicare le seguenti modifiche:

  • associare alla direttiva "fastcgi.impersonate" il valore 1;
  • associare alla direttiva "cgi.fix_pathinfo" il valore 1;
  • associare alla direttiva "cgi.force_redirect" il valore 0;
  • valorizzare la direttiva "open_basedir" con il percorso alla directory che contiene la cartella di Root del Web server ("C:inetpub" nell'esempio corrente);
  • indicare alla direttiva "extension_dir" il percorso alla directory di PHP ("C:php" nell'esempio);
  • valorizzare la direttiva "date.timezone" utilizzando la time zone di riferimento per il proprio server, ad esempio "Europe/Rome";
  • abilitare le estensioni "php_mysql.dll", "php_mysqli.dll" e "php_pdo_mysql.dll" per l'interazione con il Database manager MySQL.

Una volta valorizzate, decommentate e salvate le impostazioni indicate, si potrà rinominare il file così ottenuto in "php.ini".

Il Web server IIS

Per attivare il Web Server IIS nella macchina Windows virtualizzata sarà possibile clickare sull'icona "Server Manager" raggiungibile dalla barra delle applicazioni posta di fianco al pulsante Start o seguire il percorso "Start > Administrative Tools > Server Manager"; si aprirà così una finestra divisa in due colonne, nella colonna di sinistra sarà presente un menù verticale all'interno del quale bisognerà selezionare la voce "Roles" e successivamente clickare sul collegamento "Add Roles" nella colonna di destra.

Verrà visualizzata un'ulteriore finestra dedicata alla selezione dei "Server Roles" nella quale si dovrà spuntare la casella corrispondente alla voce "Web server (IIS)".

Figura 13. Selezione di IIS per l'installazione
Selezione di IIS per l'installazione

Fatto questo si potrà clickare sul pulsante "Next >" per aprire la sezione relativa alla selezione dei "Role Services"; da qui si dovrà spuntare la casella relativa alla voce CGI e terminare la procedura effettuata clickando sul pulsante "Install".

Figura 14. Selezione di CGI per l'installazione
Selezione di CGI per l'installazione

A conferma del buon esito della procedura affrontata sarà possibile aprire il browser Web e digitare l'URL "http://localhost" per visualizzare la pagina di benvenuto di IIS (la versione dell'applicazione fornita di default con Windows Server 2008 R2 è la 7.x).

Figura 15. Test di funzionamento del Web server
Test di funzionamento del Web server

Ora, seguendo il percorso "Start > Administrative Tools > Internet Information Services (IIS) Manager", si potrà accedere tramite icona ad una sezione denominata "FastCGI Settings" a sua volta sottosezione di "IIS".

Figura 16. Impostazioni per FastCGI
Impostazioni per FastCGI

Clickando su "Add Application..." si aprirà una finestra che permetterà di impostare il percorso completo, o "Full Path", all'eseguibile di PHP in CGI mode ("C:phpphp-cgi.exe" nell'esempio proposto).

Opzionalmente si potrà modificare anche il valore relativo al numero massimo di richieste d'istanza inviabili all'applicazione ("InstanceMaxRequests") portandole per esempio a 5 mila, una cifra scelta arbitrariamente che dovrà essere completata agendo sul parametro "EnvironmentVariables".

Figura 17. Aggiunta di un'applicazione FastCGI
Aggiunta di un'applicazione FastCGI

Clickando sulla riga relativa alle variabili di sistema e successivamente sul pulsante "Add", sarà infatti possibile aggiungerne una nuova, da chiamare "PHP_MAX_REQUESTS"; si potrà quindi associare ad essa il valore precedentemente proposto per poi confermare l'integrazione effettuata clickando su "OK".

Figura 18. Definizione di un nuovo limite per le richieste
Definizione di un nuovo limite per le richieste

Tornando nella finestra di gestione dell'Internet Information Services (IIS) Manager, si dovrà ora clickare sull'icona "Handler Mappings" per poi clickare su "Add Module Mapping".

Figura 19. Gestione del Module Mapping
Gestione del Module Mapping

La finestra visualizzata richiederà quindi la definizione di alcune impostazioni, in questo caso l'utilizzatore dovrà:

  • indicare "*.php" come "Request path";
  • indicare l'interfaccia "FastCgiModule" alla voce "Module";
  • passare il percorso all'eseguibile di PHP in CGI mode ("C:phpphp-cgi.exe") nel campo "Executable";
  • stabilire un nome da associare al nuovo record, come per esempio "PHP".
Figura 20. Parametri per il Module Mappng
Parametri per il Module Mappng

Una volta indicate tutte le voci richieste, si potrà clickare su "OK" e successivamente su "Yes" all'interno della finestra seguente per confermare l'aggiunta della nuova applicazione FastCGI.

Figura 21. Conferma della creazione di una nuova applicazione FastCGI
Conferma della creazione di una nuova applicazione FastCGI

Per rendere operative tutte le modifiche effettuate potrebbe essere utile un veloce riavvio del Web server, ciò potrà essere fatto sia attraverso il pulsante "Restart" presente nell'Internet Information Services (IIS) Manager o lanciando il comando "iisreset" dal Prompt dei conmandi.

Figura 22. Riavvio di IIS
Riavvio di IIS

Prima di passare all'ultimo test, sarà opportuno ricordarsi di integrare nel sistema operativo il pacchetto software denominato Microsoft Visual C++ 2008 Redistributable Package (x86) (http://www.microsoft.com/it-it/download/details.aspx?id=29), esso ha il compito di installare i componenti di runtime delle librerie Visual C++ necessari per l'esecuzione di applicazioni sviluppate con Visual C++ in computer nei quali non è installato Visual C++ 2008; naturalmente sono disponibile package differenti per chi utilizza OS diversi da Windows Server 2008 R2 e per le architetture x64.

Figura 23. Test sull'installazione di PHP
Test sull'installazione di PHP

L'immagine mostrata in precedenza rappresenta l'esito di un test riguardante l'installazione di IIS e PHP; l'utilizzatore potrà effettuare la stessa operazione creando un file denominato, per esempio, "info.php" che conterrà una chiamata alla funzione phpinfo():

<?php
phpinfo();
?>

Questo file dovrà essere salvato sul percorso "C:inetpubwwwroot", dove "wwwroot", è la directory di Root del Web server; fatto questo esso potrà essere richiamato da browser tramite l'URL "http://localhost/info.php".

Installare il DBMS MySQL

L'ultima operazione da eseguire per la creazione dell'ambiente di sviluppo desiderato, sarà l'installazione del Database manager MySQL; per l'esempio riportato di seguito è stato utilizzato l'eseguibile "mysql-installer-community-5.6.10.1.msi" che permette di integrare una copia funzionante della Community Edition del DBMS sia nei sistemi a 32 Bit che in quelli a 64 bit.

Un volta scaricato l'eseguibile da browser lo si potrà lanciare tramite un doppio click, si aprirà così una finestra che permetterà di proseguire selezionando il collegamento "Install MySQL Products".

Figura 24. Inizio della procedura di installazione di MySQL
Inizio della procedura di installazione di MySQL

Il passaggio successivo prevedrà la ricerca di aggiornamenti che potranno essere reperiti attraverso il collegamento ad Internet ed eventualmente scaricati; fatto questo si potrà scegliere la tipologia di istallazione desiderata che, nel caso specifico, sarà quella dedicata agli sviluppatori ("Developer Default").

Figura 25. Scelta del tipo di installazione
Scelta del tipo di installazione

Il sistema andrà quindi alla ricerca dei requisiti per l'installazione della tipologia scelta e, nel caso in cui dovesse essere rilevata l'assenza di qualche componente, si potrà procedere alla relativa installazione.

Figura 26. Controllo sui requisiti per l'installazione
Controllo sui requisiti per l'installazione

A questo punto verrà iniziata la procedura di installazione vera e propria che prevede anche l'installazione e l'aggiornamento di componenti a corredo per il Database manager come per esempio i vari Connectors da utilizzare per l'interazione con le sorgenti di dati all'interno del sistema operativo.

Figura 27. Installazione del DBMS e dei componenti accessori
Installazione del DBMS e dei componenti accessori

Si passerà quindi alla fase dedicata alle configurazioni iniziali che permetteranno all'applicazione e alle sue componenti di divenire operative all'interno del sistema.

Figura 28. Configurazione iniziale dell'applicazione e dei servizi
Configurazione iniziale dell'applicazione e dei servizi

Si potrà quindi affrontare il semplice passaggio relativo alla configurazione manuale; esso richiederà di definire:

  • la corretta configurazione del MySQL server, che nel coso specifico sarà "Developer Machine";
  • la porta di ascolto attraverso la quale il Database manager rimarrà in attesa delle chiamate, essa è la "3306" come impostazione predefinita e non dovrà essere modificata se non utilizzata da altre applicazioni;

Sarà poi importante ricordarsi di autorizzare l'accesso al DBMS da network impostando l'apposita regola nel Firewall; per far questo basterà non deselezionare la casella associata alla voce "Open Firewall port for network access".

Figura 29. Configurazione dell'engine MySQL
Configurazione dell'engine MySQL

Il passaggio successivo permetterà di associare una nuova password all'utente di Root di MySQL, l'unico disponibile da subito e l'unico in grado di vantare permessi di accesso illimitati sui dati gestiti; come impostazione predefinita il Root non possiede alcuna password, per cui il campo "Current Root Password" dovrà essere lasciato vuoto; eventualmente sarà possibile aggiungere da subito dei nuovi utenti a cui associare le necessarie credenziali di accesso e i set di privilegi con cui potranno manipolare database, tabelle e record.

Infine, il sistema richiederà di specificare un nome da assegnare al servizio MySQL il cui processo potrà essere lanciato anche contestualmente all'avvio di Windows; se non si dovessero avere delle preferenze specifiche relativamente al nome, si potrà utilizzare senza alcun problema quello associato automaticamente in installazione.

Figura 30. Configurazione del processo di MySQL
Configurazione del processo di MySQL

Clickando su "Next >" la procedura di installazione verrà conclusa e, a meno di errori notificati in questa fase, il DBMS MySQL sarà pronto per essere utilizzato ai fini dell'archiviazione e della manipolazione dei dati.

Configurazione di un Endpoint

In Azure una Machina Virtuale può comunicare nativamente in modo automatico con le altre WM definite nello stesso cloud o virtual network tramite un canale privato dedicato.

Però, nel caso in cui si voglia rendere possibile la comunicazione con risorse esterne bisognerà definire un Endpoint, in pratica un'interfaccia per la comunicazione, con il quale rendere possibili le connessioni via TCP, tramite HTTP o HTTPS, o UDP.

Come primo passaggio per la configurazione di un Endpoint in Azure, sarà necessario selezionare la Macchina Virtuale che si desidera associare a quest'ultimo, si dovrà quindi clickare sulla voce "Endpoint" e subito dopo su "Aggiungi Endpoint".

Figura 31. Elenco degli Endpoint disponibili

Elenco degli Endpoint disponibili

Si aprirà così un form ("Aggiungi un endpoint a una macchina virtuale") costituito da due moduli, il primo permetterà di scegliere se generare un Endpoint il cui traffico in ingresso verrà indirizzato verso la Macchina Virtuale o se si preferisce bilanciare il carico di traffico su un Endpoint eventualmente già creato in precedenza.

Figura 32. Inserimento di un Endpoint
Inserimento di un Endpoint

Il secondo modulo richiederà la definizione dei parametri associati all'Endpoint, si dovrà quindi stabilire un nome per esso e indicare un protocollo di comunicazione da utilizzare selezionandolo tra TCP o UDP, infine, sarà necessario definire una porta pubblica e una privata per l'interscambio delle comunicazioni.

Nel caso in cui si desideri rendere possibili le comunicazioni della Macchina Virtuale con l'esterno bisognerà specificare la porta "80" per gli ultimi due parametri.

Figura 33. Definizione dei parametri per l'Endpoint
Definizione dei parametri per l'Endpoint

Una volta completato il modulo si potrà concludere la procedura di configurazione e l'Endpoint generato sarà disponibile e accessibile tramite l'interfaccia di gestione della piattaforma.

Figura 34. Elenco aggiornato degli Endpoint configurati

Elenco aggiornato degli Endpoint configurati

Nel caso in cui si desideri eseguire un test sul funzionamento del nuovo Endpoint sarà sufficiente aprire un browser Web e digitare all'interno della barra degli indirizzi il dato DNS associato alla Macchina Virtuale (ad esempio "iishtml2.cloudapp.net"), si aprirà così la pagina di benvenuto del Web engine IIS installato nella versione virtualizzata di Windows.

Figura 35. Test sul funzionamento dell'Endpoint
Test sul funzionamento dell'Endpoint

Conclusioni

Tutte le semplici operazioni descritte nel corso di questa trattazione dovranno essere seguite scrupolosamente; in questo modo sarà possibile ottenere uno stack Windows, da amministrare in remoto tramite Azure, per lo sviluppo di applicazioni PHP che funzionino grazie al Web server IIS e interagiscano con MySQL quale piattaforma per la memorizzazione dei dati.

Ti consigliamo anche