Azure Deploy WordPress

Usare Microsoft Azure per fare deploy in WordPress non solo è possibile ma anche facile.

Scrivo questo articolo a futura memoria personale ma anche per condividere con altri WordPressari come me l’esperienza di mettere in piedi un prodotto commerciale completamente basato su WordPress, quindi vincolato a un’architettura LAMP, su piattaforma cloud di Microsoft, Azure. Iniziamo per gradi:

Perché uno sviluppatore WP dovrebbe arrivare su servizi Microsoft? E io, come ci sono capitato?

Bizspark è la causa di tutto. Fondamentalmente MS tramite questo progetto invita le startup, offrendo credito gratuitamente per alcuni anni, a basare i propri software sui loro servizi. Oltre ai vantaggi a livello economico non vedevo però altro che mi potesse attrarre, specialmente perché non credevo neanche che si potesse avere linux o un server apache su Azure, fortunatamente sbagliavo alla grande.

Venendo da un ambiente comunitario come quello dell’open source le notizie me le cerco in rete e tramite i miei soliti canali. Purtroppo ho scoperto che con prodotti di tipo business bisogna sempre fare riferimento ai materiali, alle guide e all’assistenza interna alla piattaforma. In questo caso MS offre parecchie guide e FAQ ben nascoste nei pannelli di gestione. Altra risorsa che vi consiglio di tenere in considerazione è il MSDN, dove ho potuto ritrovare un po’ di quel sapore di board dove approdare a scambiarsi info e aiutarsi.

Riguardo alla questione del cambio di mentalità quando si sviluppa in ambito MS provenendo da community open, vi rimando ad un articolo che mi ha aiutato moltissimo ad accettare questa sfida, scritto da Vito Lorusso. Ringrazio inoltre Maurizio Ceravolo per avermi indicato ottime risorse per tentare questo salto, tra cui l’articolo e l’autore dello stesso, che ora seguo assiduamente. Di seguito il post disperato di aiuto in cui mi è venuto gentilmente in soccorso:

Passiamo alla parte succosa, installiamo WordPress e facciamolo andare in meno di 10 minuti!

Azure nuovo sito da raccolta

Loggate nella Console di Azure e aprite la Tab relativa ai Siti web e poi la relativa Dashboard  (e già il nome familiare ci piace). Qui cliccate sul pannello per aggiungere un nuovo sito, che si trova nella barra in basso, poi scegliete di selezionarne uno dalla Raccolta e cercate nella lista il nostro CMS preferito, cliccate per avviare l’installazione e vi verrà chiesto di scegliere un sottodominio Azure per poter puntare la nostra applicazione, sceglietene pure uno di vostro gradimento ma ricordate che in seguito sarete in grado di puntarci un dominio di primo livello senza problema alcuno.

Fatto? Ora potete già puntare la URL fornita in fase di installazione e finire come al solito di compilare i campi soliti richiesti da WP.

Già fatto?!

Quasi, ma dobbiamo mettere a punto parecchie cose in realtà perché anche se WordPress è già usabile avrete notato un upload limit fastidioso, specialmente in fase di deploy, 2mb sono una soglia a dir poco ridicola, senza contare che se siete sotto una macchina gratuita o condivisa, magari anche di dimensioni piccole andrete a velocità limitata per mancanza di potenza di calcolo.

Partiamo dal primo punto, c’è da configurare il php.ini secondo le nostre esigenze ma non esiste un pannello di configurazione per PHP in Azure, c’è solo la maschera per avanzare o fare il downgrade della versione stabile. Dopo alcune ricerche ho trovato una guida sul MSDN che spiega nel dettaglio come raggiungere il nostro obiettivo, potete leggerla qui. Vediamone insieme le parti fondamentali e modifichiamo tutto quello che ci serve per avere una piattaforma di sviluppo usabile.

Come avrete notato non disponiamo di credenziali ftp o sftp finché non ci preoccupiamo di chiederle ad Azure e per farlo dobbiamo entrare nella dashboard principale e cercare la voce “reimposta credenziali di distribuzione“, scegliete nome utente e password, poi salvate tutto. Se sapete come configurare un client ftp saltate direttamente al paragrafo successivo altrimenti aprite filezilla e tra i nuovi siti aggiungete una connessione ftp con autenticazione di tipo normale, inserite come host quello fornitovi da azure nella dash del vostro sito mentre nel campo nome utente dovrete metterci il nome appena scelto preceduto dal vostro sottodominio azure; se il vostro indirizzo, quindi, è test.azurewebsites.net e il nome eugenio-admin dovrete mettere test/eugenio-admin. Trovate comunque tutte le credenziali e gli indirizzi per connettervi nella dashboard dei siti web di azure, nel pannello laterale (vedi immagini a seguito).

A questo punto dovreste essere connessi alla root del vostro WordPress. Badate bene che con questo utente e queste credenziali accederete solo allo spazio relativo a quel sito, e quindi a quel determinato nome a dominio, non a tutte le cartelle presenti nel vostro spazio in cloud, questo perché è obbligatorio, su Azure, avere associato ad ogni root di ogni sito web della console un indirizzo univoco.

Dimenticatevi quindi di gestire con un solo spazio più indirizzi, la filosofia del cloud è che puoi gestire con una sola console infiniti spazi e infiniti indirizzi per separare tutto riunificandolo sotto un unico ambiente (viva gli ossimori e la filosofia geek).

 

Come vi accennavo prima ci ritroviamo nella root del nostro server virtuale, qui c’è la cartella site e quella dei log, ovviamente per trovare i file di WordPress e le cartelle utili per fare le modifiche ci dobbiamo portare all’interno della prima.

Qui entra in gioco un concetto fondamentale di Azure, il file .user.ini da usare proprio come fareste con il vostro php.ini, unica accortezza ricordatevi che è un file nascosto di default quindi dovete ricordarvelo quel punto maledetto (si, ci ho sbattuto la testa per parecchie ore prima di accorgermi di questo particolare).

Andiamo a vedere cosa dobbiamo metterci dentro, quindi apriamo il nostro editor di testi preferito e creiamo questo file, pronti poi a caricarlo nel server una volta salvato, precisamente nella cartella wwwroot che si trova all’interno della cartella site e incolliamoci dentro queste due righe:

;Limite di upload per i file ;Il valore di post_max_size deve essere più grande di upload_max_filesize upload_max_filesize=10M post_max_size = 22M

La prima regola va a impostare il limite di upload via script PHP a 10Mb mentre la seconda aumenta il limite della super variabile $_POST che di base è impostato a 8Mb e che vi impedirebbe così di superare anche quello del parametro precedente. Il suo valore deve essere sempre maggiore di almeno un paio di Mb in confronto a quello di upload_max_filesize, questo per questioni di processi interni in fase di caricamento dei contenuti in PHP, per i più tecnici il rimando è a questa risorsa.

Ovviamente siete liberi di aumentarli o diminuirli a piacimento, l’unico accorgimento che dovrete tenere a mente è quello di riavviare poi l’istanza del sito dalla console di Azure per rendere effettive le modifiche, poiché il server è impostato per leggerle e sovrascriverle solo ogni 30 minuti e in fase di deploy può risultare scomodo dover aspettare tutto questo tempo, oltretutto non ho trovato nessuna guida e nessuna impostazione per modificare tale scanning quindi dobbiamo agire per forza di cose manualmente.

Riavviare macchina azure wordpress sito web php

Una buona pratica in fase di sviluppo che mi sento di consigliare è quella di creare un file nominandolo phpinfo.php e piazzarlo nella cartella wwwroot del vostro sito in modo da monitorare tutti i parametri e i moduli attivi di PHP che potrete sovrascrivere tramite il file .user.ini trattato prima. Vi basterà infatti piazzarci dentro la seguente funzione e puntare il vostro indirizzo seguito da /phpinfo.php per ritrovarvi tutte le informazioni del vostro server utili per il debug.

< ?php phpinfo(); ? >

azure phpinfo

Ora la maggior parte dei problemi sembrano risolti e siamo pronti a goderci la nostra installazione di WordPress, anche se a velocità ridotta a causa della dimensione della macchina di base. Se apriamo la scheda “SCALA” nel pannello del nostro sito ci accorgiamo che tutti i parametri della nostra macchina sono al minimo ed è questa la causa della scarsa velocità di WordPress.

Se modificate questi parametri informatevi prima dei prezzi perché ogni levetta o spunta che sposterete causerà l’entrata in vigore della fatturazione a consumo. Essendo in Bizspark con la startup con cui sto lavorando ho parecchio credito gratuito quindi posso permettermi di alzare il tiro anche in fase di sviluppo, tuttavia potrebbe essere sufficiente portare l’hosting almeno a Basic, così vi dovrebbe bastare anche un’istanza Piccola da 2Gb di RAM e non dovreste spendere grandi cifre.

Altro consiglio è quello di limitare tutto in fasce orarie. Portare a 0 tutto quando non si lavora e spendere solo quando effettivamente mettiamo mano al sito ci permetterà di non uscire quasi mai dal credito free durante l’eventuale mese di prova.

 

azure scalabilita sito web php wordpress

Ovviamente ora siamo in grado solo di usarlo per il deploy perché non possiamo accontentarci assolutamente di un sottodominio di azurewebsites, dovremmo puntare i DNS del nostro dominio (e questo deve essere in grado di farlo il register dello stesso) all’indirizzo della vostra istanza su Azure, ma questo lo vedremo dettagliatamente nel prossimo articolo che sto scrivendo sul come passare dallo sviluppo alla produttività. ;)

Vi interessa sapere qualcosa di più su come lavorare con WordPress su Azure? Scrivetemi nei commenti, contattatemi in privato oppure tramite Google+.

Mi sto facendo le ossa sul cloud di Microsoft e devo dire che non mi sto trovando per niente male. Nonostante si legga di tutto in giro, sopratutto a riguardo dei limiti di memoria che sembravano un problema insormontabile, io sto imparando a ottimizzare i processi e anche i costi in maniera abbastanza rapida e intuitiva. La scalabilità mi sta sorprendendo parecchio e nonostante su macchine piccole, come quelle comprese nel free trial offerto da MS, la sensazione è quella di estrema lentezza, passando a istanze con taglie da produttività ci si rende conto della potenza del mezzo.

Vi lascio con la speranza di avervi smosso abbastanza curiosità da provare “La nuvola delle finestre” e anticipandovi già che ci tornerò con una serie di articoli prossimamente, quindi, lasciate la console Azzurra aperta e fatemi sapere che ne pensate.

Lasciami un commento