• Menu
  • Skip to primary navigation
  • Skip to secondary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Ing. Flavio Albano

Il tuo SEO e SMM ad Agrigento

  • Home
  • Blog
  • Su di me
  • Servizi Offerti
    • Webmaster
    • SEO
    • SMM
    • Copywriter
  • Contattami
    • Form di Contatto
    • Come Arrivare
    • Info di Contatto
  • Privacy Policy
  • Privacy Policy
  • Home
  • Blog
  • Su di me
  • Servizi Offerti
    • Webmaster
    • SEO
    • SMM
    • Copywriter
  • Contattami
    • Form di Contatto
    • Come Arrivare
    • Info di Contatto
  • Privacy Policy
logo ufficiale di docker da wikipedia

Come creare un ambiente di hosting per WordPress con Docker

Home » Webmaster » Come creare un ambiente di hosting per WordPress con Docker

3 Agosto 2017 //  by Flavio Albano//  Leave a Comment

Quest’oggi vorrei parlarvi di come mettere in piedi un ambiente di hosting ad alte prestazioni per WordPress utilizzando Docker.

La configurazione che andremo a creare supporterà http2, sfrutterà nginx come proxy e sarà certificata con Let’s Encrypt: come SEO Engineer ho bisogno spesso di ambienti di hosting adatti ad ospitare dei blog che richiedono più cura del normale.

 

(Breve nota… questa guida si riferisce a WordPress 4.8.0 sebbene da pochissimo sia uscita la versione 4.8.1)

 

Inizio descrivendo l’ambiente di lavoro; useremo una Ubuntu 16.04 sulla cloud di Amazon, per i nostri scopi ci basterà l’abbonamento gratuito per un anno fornito da Amazon Web Services.

 

L’abbonamento gratuito di Amazon vi permette di avere per un anno una macchina di tipo t2.micro; un altro requisito per portare a termine il processo descritto in questo tutorial è possedere un nome di dominio e potere modificare i record DNS (se volete seguire la parte sulla certificazione in https).

 

E quindi andiamo ad iniziare.

Come prima cosa vi linko una guida ufficiale di Amazon che spiega in pochissimi passi come creare una macchina t2.micro; darò per scontato che abbiate una t2.micro accesa generata a partire dall’immagine di Ubuntu 16.04 LTS.

 

Iniziamo ad aggiornare la macchina con i consueti due comandi:

sudo apt- update

sudo apt-upgrade

 

Fatto questo vi rimando all’ottima guida di Docker (in lingua inglese) che spiega l’installazione di Docker Community Edition (tutto si risolve fondamentalmente in: aggiungere la chiave,  aggiungere il repository ed installare i pacchetti necessari).

 

A questo punto, se abbiamo seguito correttamente le guide, iniziamo a lavorare sul DNS e facciamolo puntare all’ip della t2.micro di Amazon (vi ricordo che, a meno di spendere per un IP, l’istanza cambierà IP ad ogni riavvio: tenetene conto se riavviate e riaggiornate il record A del DNS di conseguenza).

Non dobbiamo dimenticare di aprire le necessarie porte sul Security Group della vostra istanza EC2: nel nostro caso dovrete aprire le porte 80/tcp e 443/tcp da Anywhere nelle policy.

 

A questo punto è un gioco da ragazzi avere un ambiente ottimizzato per WordPress… la configurazione che ho testato io utilizza 3 immagini Docker (una per mysql, una per nginx ed una per wordpress + apache + php)… (in realtà poi ho aggiunto anche l’immagine di piwik e quella di phpmyadmin).

Le immagini che ho scelto sono:

  • mysql:latest (volendo si potrebbe utilizzare mariadb al suo posto)
  • jwilder/nginx-proxy:alpine (che è basata sulla distro Linux Alpine)
  • wordpress:4.8.0-php7.1-apache (come accennavo prima è uscito da pochissimo wordpress 4.8.1… quindi ad installazione finita dovreste aggiornare WordPress)

 

I tre comandi necessari a costruire l’ambiente di hosting sono i seguenti:

  1. sudo docker run -e MYSQL_ROOT_PASSWORD=password -d –restart=always –name mysql -v /home/mysql/:/var/lib/mysql/ mysql
  2. sudo docker run -d –restart=always –name nginx -p 80:80 -p 443:443 -e ENABLE_IPV6=true -e DEFAULT_HOST=www.esempio.com -e VIRTUAL_PROTO=uwsgi -v /home/nginx/htpasswd:/etc/nginx/htpasswd -v /home/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /home/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy:alpine
  3. sudo docker run -d –restart=always -e VIRTUAL_HOST=www.esempio.com –name wordpress –link mysql:mysql -v /home/wp/:/var/www/html/ wordpress:4.8.0-php7.1-apache

Andiamo a vedere cosa fanno questi 3 comandi.

Il primo scarica e mette in produzione l’ultima versione di mysql con una password di root da indicare; il secondo scarica e mette in produzione nginx specificando che il default host è www.esempio.com mentre il terzo scarica e mette in produzione wordpress e gli assegna come virtualhost www.esempio.com.

 

A questo punto passiamo a Let’s Encrypt… io ho installato il pacchetto già presente in Ubuntu ma se volete potete seguire questa guida (cambia poco).

Una volta ottenuti i certificati vanno copiati in /home/nginx/certs ed in particolare il cert.pem va rinominato esempio.com.crt mentre la key va rinominata in esempio.com.key.

 

Se avete seguito correttamente la guida dovreste adesso avere un ambiente di hosting pronto ad accogliere un blog con https e sopratutto http2 (che Google sta fortemente spingendo in quanto più performante)… potete verificare la configurazione di http2 a questo indirizzo.

Categoria: WebmasterTag: Amazon AWS, Docker, Let's Encrypt, Linux, Ubuntu

About Flavio Albano

Da sempre appassionato di tecnologia non ho mai smesso di credere nell'open-source e nella condivisione della conoscenza. Laureato in ingegneria civile per un errore di gioventù ed utilizzatore di Linux dal 1998 (la prima distribuzione era una Slackware... e la prima non si scorda mai ;) )

Previous Post: «logo ufficiale di docker da wikipedia Come usare Serposcope dentro un container Docker e vivere felici e contenti
Next Post: Gli Update Services in WordPress in ottica SEO grafica realizzata con tanti loghi di wordpress insieme»

Reader Interactions

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Primary Sidebar

Articoli recenti

  • L’analisi dei backlinks da parte del Consulente SEO
  • Le migliori strategie per l’email marketing gratis
  • Un copy persuasivo per le landing page: SEO & CRO
  • Social Media Manager: Mestiere o Missione?
  • Storytelling: come raccontare un Brand

Commenti recenti

  • vivere in sicilia su Come Ottimizzare robots.txt e .htaccess per il SEO
  • Piergiorgio Zotti su SEO ed OSINT: Una piccola raccolta di tool per l’intelligence
  • Flavio Albano su SEO ed OSINT: Una piccola raccolta di tool per l’intelligence
  • Fabio Sermatica su SEO ed OSINT: Una piccola raccolta di tool per l’intelligence
  • Flavio Albano su Come Ottimizzare robots.txt e .htaccess per il SEO

Categorie

Grafica Intelligence Interviste Marketing Security SEO SMM Varie Webmaster Wordpress

Tag

Agrigento Amazon AWS Brand CMS Copywriting Cybersecurity Debian Docker Grafica Raster Grafica Vettoriale Growth Hacking Immagini Instagram Java Landing Page Let's Encrypt Link Building Linux Local SEO Marketing Intelligence SEO Off-Site SEO On-Site Serpchecker Siciliani all'estero Storytelling Turismo Ubuntu

Footer

Contatti

Indirizzo
Via Papa Luciani, 5 - 92100 - Agrigento (AG)

Telefono
+39.0922.1901512

Cellulare
+39.320.8482814

Email
[email protected]

Copyright

I contenuti presenti sul sito ingegnerealbano.com, dei quali l’Ing Calogero Flavio Albano è autore, non possono essere copiati, riprodotti, pubblicati o redistribuiti perché appartenenti all’autore stesso. È vietata la copia e la riproduzione dei contenuti in qualsiasi modo o forma. È vietata la pubblicazione e la redistribuzione dei contenuti non autorizzata espressamente dall’autore.

Disclaimer

Questo blog non rappresenta una testata giornalistica in quanto viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62 del 07/03/2001.

Seguimi sui Social

  • Privacy Policy

Copyright © 2019 Ing. Flavio Albano · All Rights Reserved

Questo sito utilizza anche cookie di profilazione anche di terze parti. Se prosegui nella navigazione assumiamo che tu lo accetti.OkPrivacy policy