In questo articolo vediamo come un Hosting Service Provider (HSP) deve configurare la propria infrastruttura per poter inserire la propria offerta di hosting Windows (Shared Hosting, Virtual Private Server e Server Dedicati) nella Microsoft Web Hosting Gallery.
La "Gallery" altro non è che il marketplace che Microsoft mette a disposizione degli utenti che utilizzano software come WebMatrix e che consente loro di scegliere tra le migliori offerte degli hoster. La presenza sulla Gallery quindi assicura ai provider una grande visibilità per le loro offerte.
Essere compatibili con WebMatrix significa garantire a propri clienti la possibilità di pubblicare le proprie applicazioni Web direttamente da WebMatrix, sia quelle sviluppate da zero, sia quelle scaricate dalla Web Application Gallery, sui propri server.
Questo articolo descrive come estendere un'infrastruttura esistente basata su IIS 7.x in modo che gli utenti finali possano pubblicare direttamente i loro siti e le loro applicazioni da WebMatrix. La guida è focalizzata alle infrastrutture di Shared Hosting, ma le indicazioni possono essere utilizzate anche per la configurazione di Virtual Private Server e Server Dedicati.
Questo articolo non descrive come costruire da zero un ambiente di hosting basato su Windows. Nel proseguio si assume che già esista un ambiente di hosting basato su IIS 7.x e ASP.NET e che si abbia esperienza nella sua gestione. Per avere informazioni sulla configurazione di un ambiente di Shared Hosting basato su Windows si consiglio la lettura di questa guida.
Vediamo rapidamente quali sono le azioni necessarie alla configurazione:
- Installazione dei componenti lato server
- Configurazione del server per consentire ai clienti la pubblicazione da remoto dei siti web
- Validazione della configurazione del server
- Creazione di un profilo di pubblicazione (file XML) contenente le credenziali per la pubblicazione
- Creazione di una mail di benvenuto che semplifichi al cliente l'uso di WebMAtrix
Dopo aver completato i passi da 1 a 5, è necessario sottomettere una richiesta formale di adesione alla Web Hosting Gallery usando il questo form di registrazione. Nella richiesta di adesione è necessario inserire un account di test che sarà usato dal team di WeMatrix per eseguire i test di compatibilità.
Come i clienti pubblichano le loro applicazioni
- Il cliente trova l'offerta nella Web Hosting Gallery e richiede un account
- L'hoster fornisce le risorse richieste (incluso un database SQL Server e/o MySQL) al cliente
- Provisioning del sito IIS:
- Creazione di uno username e password per la gestione del sito IIS
- Applicazione dei permessi di deployment e gestione sul sito IIS
- Provisioning del database SQL Database:
- Creazione di account e password per SQL
- Applicazioni dei permessi al database per l'account SQL creato
- L'hoster spedisce al cliente le credenziali per la gestione del sito inserendole nel file XML contenente il profilo
- Il cliente usa WebMatrix per caricare il suo sito web sui vostri server
Installazione dei componenti server
Vediamo ora come installare i componenti server necessari per ottenere la compatibilità con WebMatrix e ottenere il riconoscimento "Spotlight" nella Web Hosting Gallery.
Prerequisiti
Microsoft raccomanda l'utilizzo di almeno due server (configurazione minimale), entrambi installati con Windows Server 2008 R2:
- Il prima agirà da web server
- Il secondo agirà da database server
È possibile eseguire entrambi i ruoli su un'unica macchina, ma non è raccomandato per motivi di performance e sicurezza.
Entrambi i server devono essere connessi ad Internet per poter eseguire il download dei componenti necessari.
Per semplificare l'installazione dei componenti server Microsoft raccomanda l'installazione e l'utilizzo di Web Platform Installer (scaricare WebPI 3.0), noto anche come WebPI, su entrambi i server: un tool che automatizza l'installazione della maggior parte dei componenti server e di altri prodotti della piattaforma web di Microsoft.
Se si preferisce non usare WebPI, tutti i componenti necessari possono anche essere installati manualmente o utilizzando dei propri script.
Componenti Web per i Server
Opzione 1: Installazione via Web Platform Installer 3.0 (raccomandata)
Se WebPI 3.0 è installato sul server, cliccando su questo link si avvierà automaticamente l'installazione di tutti i componenti server necessari.È possibile rivedere la lista dei prodotti installati prima che l'installazione abbia inizio.
Molte delle applicazioni installabili via WebMatrix hanno PHP/MySQL come componenti necessari. Per essere sicuri di supportare queste applicazioni è disponibile un link alternativo al precedente che installa tutti i componenti server necessari a WebMatrix ed in aggiunta PHP/MySQL.
Dopo aver avviato WebPI con uno dei link indicati, è sufficiente cliccare sul bottone "Install" per rivedere la lista dei componenti e procedere con l'installazione.
Nota: Anche usando i link di installazione automatizzata, bisogna procedere all'installazione manuale della hotfix Extensionless URL .
Opzione 2: Installazione manuale dei componenti server
Qui si seguito c'è la lista completa dei componenti server che sono installati automaticamente usando i link indicati sopra. Si può usare questa lista per verifica e anche in caso di installazione automatica. Molti dei componenti dipendono da altri componenti per un totale di circa 50 MB.
Server IIS
Nome | Necessario | Descrizione |
---|---|---|
IIS 7 Web Server | Sì | Componente di base, necessario alle funzioni di base di server web |
Framework
Nome | Necessario | Descrizione |
---|---|---|
.NET Framework 3.5 SP1 | Sì | Alcune applicazioni dipendono da questo framework |
.NET Framework 4.0 | Sì | Alcune applicazioni dipendono da questo framework |
PHP (5.2.14 o successivo) | Opzionale | Non è richiesto per ottenere lo status Spotlight, ma molte applicazioni pubblicabili via WebMatrix dipendono da PHP |
ASP.NET | Sì | Questo framework costituisce la base per molte applicazioni web |
ASP.NET MVC 1.0 | Sì | Un gran numero di applicazioni presenti nella Microsoft App Gallery dipendono da questo framework |
È possibile installare anche ASP.NET MVC3 e ASP.NET Web Pages, che consentono di ospitare applicazioni scritte usando la nuova sintassi "Razor" di ASP.NET.
Le librerie richieste per supportare questo tipo di applicazioni sono comunque installate automaticamente da WebMatrix. In questo modo ogni utente finale che pubblichi un'applicazione di questo tipo si troverà ad avere i necessari file nella directory /bin/
sotto la root directory del proprio sito web; quindi non è necessario installare queste estensioni in modo centralizzato e Microsoft consiglia di non installare altro oltre a MVC 1.
ASP.NET Web Pages è, al momento della scrittura di questo articolo, ancora in versione non definitiva; se si decide quindi di installare questa estensione si dovrà re-installarla al rilascio della versione definitiva.
Moduli IIS
Nome | Necessario | Descrizione |
---|---|---|
Microsoft Web Deploy 2.0 | Sì | un tool client-server che semplifica il deployment di siti e applicazioni sui server IIS. Anche se WebMatrix supporta la pubblicazione di applicazioni web usando sia FTP sia Web Deploy, quest'ultimo fornisce all'utente finale un'esperienza di pubblicazione più veloce, sicura e ricca di opzioni ed è quindi da preferire. Web Deploy consente inoltre la pubblicazione dell'intera applicazione tra cui anche il database |
FTP Publishing Service | Sì | Per assicurare la massima compatibilità e consentire anche la pubblicazione via FTP |
Media Services 4.0 | Opzionale | Per garantire il supporto a IIS Smooth Streaming |
IIS Remote Management Service | Sì | Servizio necessario al funzionamento di Web Deploy e consente agli utenti finali di gestire aspetti di configurazione dei propri account usando la console di amministrazione di IIS |
FastCGI for IIS | Sì | Fornisce un miglior supporto alle applicazioni che sfruttano il modello CGI (es. applicazioni PHP) |
URL Rewrite 2.0 | Sì | Necessario per il corretto funzionamento di molte applicazioni presenti nella Microsoft Application Gallery |
SQL Server 2008 Management Objects | Sì | Necessario per il corretto funzionamento di molte applicazioni presenti nella Microsoft Application Gallery |
Windows Cache Extension 1.1 for PHP | Opzionale | Molto raccomandato se si eseguono applicazioni PHP su Windows |
MySQL Connector/Net 6.2.3 or higher | Opzionale | Necessario per applicazioni.NET che usano database MySQL |
Microsoft Drivers for PHP for SQL Server 2.0 in IIS | Opzionale | Necessario per applicazioni PHP che usano database SQL Server |
Patch per il server Web
Nome | Necessario | Descrizione |
---|---|---|
Extensionless URL Hotfix | Sì | Richiesta per il corretto funzionamento di ASP.NET. Per maggiori informazioni consultare questo post in inglese |
Componenti per il database server - SQL Server
Nome | Necessario | Descrizione |
---|---|---|
Microsoft SQL Server 2008 | Sì | WebPI supporta l'installazione di Microsoft SQL Server 2008 Express edition, ma si sconsiglia l'uso di questa versione in un ambiente di produzione di tipo shared hosting; in ambienti di produzione dovrebbe essere usata una versione full di SQL Server 2008 |
PHP Driver for SQL Server | Opzionale | Si raccomanda vivamente l'installazione di questo componente sul database server se si intende supportare le applicazioni PHP |
Componenti per il database server - MySQL
Per maggiori informazioni sulla configurazione di un'installazione MySQL per il supporto a WebMatrix si consiglia la lettura di questo articolo in inglese.
Configurazione dei siti per la pubblicazione via Web Deploy
Dopo aver configurato i server con tutto il software necessario per supportare la pubblicazione di applicazioni via WebMatrix, l'installazione di Web Deploy 2.0 crea tutte le regole di delega necessarie al Management Service per consentire ai non-amministratori la pubblicazione di applicazioni e database. Il tool di installazione provvede anche ad avviare il Web Management Service.
Ora è necessario configurare i singoli siti web per la abilitarli alla pubblicazione via Web Deploy. Questa operazione è simile a quanto richiesto per abilitare in IIS il protocollo FTP sui singoli siti dopo aver installato il servizio FTP.
Uso dell'interfaccia grafica di IIS Manager
L'interfaccia grafica di IIS Manager contiene un componente utile per la configurazione veloce di Web Deploy per uno specifico sito:
- Avviare IIS Manager:
Start > Run
e digitare "inetmgr.exe" - Cliccare col tasto destro del mouse sul sito per cui si vuole abilitare la configurazione via Web Deploy e selezionare la voce di menu
Deploy
; quindi scegliere "Configure Web Deploy Publishing...
". Questa finestra di dialogo esegue diverse attività:- Imposta i corretti permessi sul file system nella directory root del sito in modo che la pubblicazione via Web Deploy funzioni
- Genera un file che contiene le impostazioni di pubblicazione per Web Deploy. Questo file può essere usato per pubblicare il sito da tool come WebMatrix e Visual Studio
- Chi fosse interessato a personalizzare le opzioni di pubblicazione presenti nel file, trova di seguito una spiegazione dei singoli parametri:
Select a user to give publishing permission
Se c'è un amministratore IIS che ha i permessi sul sito, il campo sarà pre-popolato. In caso contrario è possibile inserire un account definito in Windows o in IIS Manager. Questo sarà l'account usato dall'utente finale per la pubblicazione.
Enter SQL Server connection string to be used for publishing
Enter MySQL connection string to be used for publishing
La stringa di connessione al DB inserita in questo punto, sarà salvata nel file con le impostazioni per la pubblicazione.
ATTENZIONE:
Il database deve essere creato al di fuori di questa interfaccia grafica. Questa interfaccia grafica NON creerà user, login ecc. Per la configurazione dei database server si devono usare tool come SQL Server Management Studio o mysql.exe.Specify the URL for the publishing server connection
È l'endpoint di pubblicazione del Web Deploy Management Service. Questo campo dovrebbe essere pre-compilato.
- Cliccare su Setup
- Copiare il file con estensione
.publishSettings
su un computer con installato WebMatrix. - Avviare WebMatrix e creare un nuovo sito.
- In WebMatrix cliccare su
Publish
e quindi su "Import web hosting settings
" e selezionare il file.publishSettings
A questo punto dovreste essere in grado di pubblicare il sito da WebMatrix.
Nella seconda parte dell'articolo vedremo come automatizzare la configurazione grazie a script PowerShell