Hai deciso di pubblicare un sito basato su WordPress e vorresti sfruttare le potenzialità del cloud affinché tu possa scalare le risorse senza problemi? Allora questo articolo fa per te perché vedremo come installare WordPress su una macchina virtuale EC2 di Amazon Web Services (AWS) passo passo senza saltare nulla. Infatti provvederemo anche a collegare un dominio al nostro sito e ad installare un certificato https che non può assolutamente mancare.
Prima di tutto ti ricordo di fare attenzione a non confondere EC2 con Lightsail consigliato dallo stesso Amazon per creare un sito WordPress. Lightsail è uno spazio con risorse predeterminate, quindi è molto simile a un classico hosting: non è questo ciò di cui parleremo.
Utilizzeremo una macchina EC2 Ubuntu, tuttavia la procedura è abbastanza simile per ogni macchina Linux (noi tratteremo solo questo caso, se sei interessato a un tutorial in caso di macchine virtuali Windows fammelo sapere con un commento e valuterò l’ipotesi di fare un altro tutorial).
In questo tutorial presupporrò che tu abbia già un account AWS. Detto ciò entriamo nel merito della faccenda senza perderci in ulteriori parole!
Creazione macchina virtuale
Ovviamente il primo passo è creare una macchina virtuale su cui ospitare il nostro sito WordPress. Dal pannello di AWS andiamo nella sezione EC2 e avviamo un’istanza. Se si vuole utilizzare la macchina gratuitamente sfruttando il periodo di free tier porre attenzione alle specifiche che si selezionano. Si hanno in un anno 750 ore di utilizzo gratuito e vanno collocati in una regione gratuita (la Virginia è uno di essi). Dopodiché procediamo a creare una macchina virtuale Ubuntu Server e scarichiamo la chiave per accedere in ssh fondamentale per accedere al nostro server.
Impostiamo così i gruppi di sicurezza:
Ad istanza creata procediamo ad avviarla.
Utilizzo di un IP fisso
Alla macchina virtuale EC2 viene assegnato un indirizzo IP dinamico che cambia continuamente: questo per un sito web che dovrebbe essere raggiungibile sempre allo stesso indirizzo è un problema.
Per avere sempre lo stesso indirizzo IP (alla quale verrà poi collegato il dominio) è importante aver un IP fisso. AWS consente l’acquisto di un IP fisso che pagheremo in base al consumo. Se stai sfruttando il periodo di free tier, una volta richiesto un IP fisso provvedi subito ad associarlo alla macchina: gli indirizzi IP sono una risorsa pregiata che scarseggia, quindi AWS per gli IP inutilizzati fa pagare un costo.
Puoi creare un IP elastico dalla sezione Rete e Sicurezza > IP elastici
Dopo la sua creazione bisognerà assegnarlo alla nostra istanza in modo tale che mantenga quell’IP. È possibile selezionare la nostra istanza dall’interfaccia stessa di AWS.
Installazione di WordPress nella macchina
1) Accedere in ssh da terminale o da un’applicazione che consente la connessione ssh come MobaXterm seguendo indicazioni fornite da amazon.
- È importante avviare la connessione ssh dalla stessa cartella in cui c’è il file con la chiave di accesso.
2) Eseguire -> sudo apt update
3) Eseguire -> sudo apt install apache2
4) Eseguire -> sudo apt install php libapache2-mod-php php-mysql
5) Eseguire -> sudo apt install mysql-server
6) Eseguire -> sudo mysql -u root seguito dai seguenti comandi di esempio per creare DB e user
mysql> ALTER USER 'root'@localhost IDENTIFIED WITH mysql_native_password BY 'LaTuaPassword';
mysql> CREATE USER 'wp_user'@localhost IDENTIFIED BY 'LaTuaPassword';
mysql> CREATE DATABASE wp;
mysql> GRANT ALL PRIVILEGES ON wp.* TO 'wp_user'@localhost;
7) Andare nella cartella tmp eseguendo -> cd /tmp
8) Trovare url download del tar di WordPress e scaricarlo nella cartella tmp con comando wget https//url.wordpress.org
9) Scompattarlo con tar -xvf nome_file.tar.gz (se non si conosce il nome verificarlo con il comando ls)
10) Spostare la cartella WordPress nella cartella html di apache (/var/www/html) mediante il comando -> sudo mv wordpress/ /var/www/html/
11) Andare sul sito mediante IP pubblico della macchina virtuale -> xxx.xxx.xxx.xxx/wordpress e installare WordPress da interfaccia
- In caso di problemi con il file config da interfaccia web modificarlo utilizzando cd /var/www/html/ e subito dopo eseguendo nano config.php copiando e incollando il codice restituito dall’errore nell’interfaccia di WordPress
- Se nel salvataggio con ^X da un errore di permessi eseguire il comando sudo !! e ripetere la modifica
12) Allo stato attuale il nostro sito è accessibile mediante il path IP/wordpress e se vogliamo che sia accessibile direttamente dall’IP dobbiamo modificare le impostazioni di apache al path cd /etc/apache2/sites-available/ . Una volta nella cartella dovremo modificare il file 000-default.conf (possiamo verificare la sua presenza nella cartella con il comando ls). Per modificare il file usiamo nano con il comando nano 000-default.conf e aperto il file dovremo modificare il testo DocumentRoot /var/www/html in DocumentRoot /var/www/html/wordpress perché così facendo diremo al sistema che tutto parte da lì.
- Analogamente a prima, se nel salvataggio con ^X da un errore eseguire il comando sudo !! e ripetere la modifica
13) Per rendere effettive le modifiche riavviare apache con il comando sudo systemctl restart apache2
Collegare l’IP a un dominio che possediamo
Ci siamo quasi, a questo punto il nostro sito funziona correttamente ma non ha ancora un dominio associato e manca l’https. Iniziamo subito con il dominio. Presupponiamo di aver già acquistato un nostro dominio presso un registar e andiamo sull’interfaccia di gestione di esso.
- Registriamo un record DNS di tipo A che punti al nostro IP pubblico. Il parametro TTL lo impostiamo tra 500 e 1000.
- Tornare nel file di impostazione 000-default.config e aggiungere nella riga successiva a DocumentRoot … le seguenti stringhe (sostituisci mydomainurl.it con il tuo dominio) :
ServerName mydomainurl.it
ServerAlias www.mydomainurl.it
- Riavviamo apache con il comando sudo systemctl restart apache2
- A questo punto il dominio punterà al nostro IP, tuttavia su WordPress sarà rimasta l’impostazione di default sull’IP. Dunque dall’interfaccia di amministrazione WordPress andare su Impostazioni à Generali e cambiare l’IP con il dominio.
Utilizzare https per il nostro sito WordPress
Affinché i browser riconoscano il nostro sito come affidabile è necessario installare un certificato SSL. Per farlo useremo uno strumento chiamato certbot.
- Eseguire il comando sudo apt install certbot python3-certbot-apache
- In caso di problemi eseguire sudo apt get update
- Eseguire il comando sudo certbot –apache e inserire i dati richiesti indicando tutti i domini a cui vogliamo applicare il certificato
Conclusione
E con questo abbiamo installato e reso operativo il nostro sito WordPress su una macchina AWS Ubuntu. Ovviamente la procedura di installazione di WordPress è la normale procedura di installazione che avverrebbe su una qualsiasi macchina Linux, ma ho voluto applicare il tutto al contesto AWS in modo tale che chi avesse voluto installarlo su cloud si fosse sentito a proprio agio.
Se l’articolo ti è tornato utile lascia un commento. Se reputi che potrebbe essere utile un articolo su:
- Come migrare il tuo sito WordPress dal tuo hosting ad AWS
- Installare cPanel sulla tua macchina AWS
- Come rendere scalabile un sito WordPress su una macchina EC2
Faccelo sapere tramite un commento, così prenderemo in considerazione di dedicargli una guida.
In questo blog mi occupo di tematiche legate in diversa forma al tema dell’innovazione e della tecnologia.
Sin da piccolo appassionato di informatica mi divertivo a creare siti web e applicazioni elementari cercando di capire cosa ci fosse sotto il cofano. Questa passione mi ha condotto alla mia professione di informatico dopo aver conseguito una laurea in informatica presso l’Università della Calabria (Unical).
Periodicamente pubblico articoli attinente a questi temi.
Altri articoli
Cloud Computing: di cosa si tratta?
Cloud Computing: di cosa si tratta?
Flutter: sviluppa app per smartphone in un solo colpo
Flutter: sviluppa app per smartphone in un solo colpo
Come rendere accessibile un sito web
Come rendere accessibile un sito web