Scopri come realizzare un’installazione di WordPress nei container Docker, manualmente o con Docker Compose. Gli sviluppatori e le sviluppatrici noteranno l’utilità di installare WordPress nei container Docker, che permette loro di testare più configurazioni di WordPress e avviare una nuova installazione del CMS con pochi semplici comandi.

Hosting WordPress
Gestisci WordPress al meglio grazie all'IA
  • Funzioni IA per generare e modificare il tuo sito web
  • Aggiornamenti automatici e sempre personalizzabili
  • Scansioni di sicurezza giornaliere, protezione DDoS e disponibilità del 99,98%

Requisiti

Per far girare WordPress facilmente nei container Docker è necessaria una distribuzione Linux aggiornata e supportata. Le versioni precedenti come CentOS 7 o Ubuntu 14.04 sono obsolete e devono essere sostituite da alternative moderne. Ti consigliamo:

  • Ubuntu 22.04 LTS o una versione più recente
  • Debian 12 o una versione più recente
  • Una versione aggiornata di Red Hat Enterprise Linux (RHEL) o AlmaLinux

Inoltre, devi aver installato Docker, che deve essere pronto all’uso. Il requisito minimo è Docker 20.10 o superiore, se desideri sfruttare i più recenti miglioramenti in termini di sicurezza e prestazioni. Per utilizzare Docker Compose, assicurati di avere almeno la versione 2.x, poiché le versioni più vecchie non ricevono più supporto attivo.

Inoltre, ti sarà utile conoscere le nozioni di base per l’uso della riga di comando e sapere come usare Docker Compose e Docker. Se prevedi di utilizzare configurazioni particolarmente estese o scalabili, ti consigliamo di considerare anche Kubernetes per gestire l’orchestrazione dei container a livello professionale.

Esecuzione di WordPress nei container Docker

Per funzionare correttamente, un’installazione di WordPress deve essere composta da tre elementi:

  • Il software WordPress
  • Un database MySQL o MariaDB
  • I passaggi finali di installazione, da eseguire in un browser

Negli esempi seguenti, i componenti WordPress e MySQL/MariaDB sono eseguiti in container connessi fra loro, ma distinti. Il container in cui gira il software WordPress è assegnato a una porta dell’host, in modo da potervi accedere tramite browser.

Esecuzione di un container MySQL/MariaDB

Dopo aver avviato Docker, il primo passo è configurare il database. A tal fine, crea prima un container di nome my-db. Puoi utilizzare MySQL o MariaDB, che è un sostituto “drop-in”, ossia diretto, di MySQL.

MySQL

Avvia un container con il comando:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=PASSWORD_SICURA -d mysql:latest

MariaDB

Avvia un container con il comando:

sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=PASSWORD_SICURA -d mariadb:latest
N.B.

Assicurati sempre di utilizzare una password sicura per il tuo database. Anche l’uso di variabili di ambiente per memorizzare le password rappresenta una potenziale vulnerabilità della sicurezza. In alternativa, è preferibile utilizzare un Docker Secret o un file di configurazione protetto.

Creazione del database

Dopo aver creato il container, è necessario creare il database che desideri utilizzare per l’installazione di WordPress.

MySQL

Utilizza il seguente comando per connetterti al container del database appena creato:

docker exec -it my-db mysql -u root -p

Crea un database:

CREATE Database wordpress-db;

MariaDB

Utilizza il seguente comando per connetterti al container del database appena creato:

docker exec -it my-db mariadb -u root -p

Crea un database:

CREATE Database wordpress-db;

Esecuzione di un container WordPress

Successivamente, esegui un container dall’immagine ufficiale di WordPress, mappata sulla porta host 8080 e collegata al container del database.

Due osservazioni:

  • Se utilizzi un firewall, potrebbe essere necessario aggiungere l’accesso alla porta 8080.
  • Se sulla porta 8080 è già in esecuzione un altro servizio, è possibile selezionare una porta diversa sull’host.

Il comando cambia leggermente a seconda che utilizzi MySQL o MariaDB:

MySQL

Avvia un container WordPress con il comando:

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mysql -d wordpress:latest

MariaDB

Avvia un container WordPress con il comando:

sudo docker run --name my-wordpress -p 8080:80 --link my-db:mariadb -d wordpress:latest

Esistono molte altre variabili di ambiente che è possibile aggiungere a questo comando se desideri sovrascrivere le impostazioni predefinite, tra cui:

  • -e WORDPRESS_DB_HOST=[hostname]: le impostazioni predefinite sono l’indirizzo IP e la porta del container MySQL/MariaDB collegato. Questa variabile ti permette di accedere a un database MySQL/MariaDB su un altro server.
  • -e WORDPRESS_DB_USER=[username]: lo standard è root.
  • -e WORDPRESS_DB_PASSWORD=[password]: per impostazione predefinita si utilizza la variabile di ambiente MYSQL_ROOT_PASSWORD del container MySQL/MariaDB collegato.
  • -e WORDPRESS_DB_NAME=[name]: l’impostazione predefinita è “wordpress”.

Per una maggiore sicurezza può essere utile non eseguire i container sulla rete bridge standard, ma puoi invece utilizzare la tua rete personale:

docker network create my-wp-network
docker run --name my-db --network my-wp-network -e MYSQL_ROOT_PASSWORD=PASSWORD_SICURA -d mysql:latest
docker run --name my-wordpress --network my-wp-network -p 8080:80 -d wordpress:latest

In questo modo i container sono più isolati gli uni dagli altri, riducendo quindi il rischio di connessioni indesiderate. Inoltre, è possibile configurare le regole della rete in modo più dettagliato, ad esempio con regole firewall speciali o tramite l’uso di un reverse proxy.

Conclusione dell’installazione in un browser

Per completare l’installazione è necessario accedere al container WordPress da un browser.

Nell’esempio precedente, la porta 8080 dell’host è mappata sulla porta 80 (servizi web) del contenitore. In questo modo è possibile accedere al container da un browser tramite l’indirizzo IP o l’URL del server:

  • http://<server-ip>:8080
  • http://example.com:8080

Apri questo URL in un browser, scegli la lingua che preferisci per l’installazione, quindi fai clic su Continue (Avanti).

Immagine: Screenshot della selezione della lingua di WordPress
Qui puoi selezionare la lingua dell’installazione nel tuo browser.

Nella pagina successiva troverai una nota informativa per prepararti alle fasi successive dell’installazione. Fai clic sul pulsante “Let’s go!” per proseguire.

Immagine: Screenshot della nota di installazione di WordPress
La nota informativa di installazione di WordPress per la prossima fase di configurazione.

A questo punto devi indicare il tuo database, in modo da poter creare il file wp-config.php:

Immagine: Screenshot della connessione al database di WordPress
Inserisci le informazioni richieste per il tuo database.

Ricorda che l’utente predefinito è “root”, se non diversamente specificato; inserisci qui il nome del database che hai creato e la password che hai scelto. Fai clic su “Submit” (Invia) per passare alle fasi successive del processo di installazione.

Immagine: Screenshot dell’installazione di WordPress: informazioni sulla pagina di WordPress
Inserisci le informazioni richieste per la tua pagina WordPress.
  • Titolo del sito web: digita il titolo del tuo sito.
  • Nome utente: il nome utente principale per l’amministrazione del tuo sito web. N.B.: per motivi di sicurezza ti consigliamo di NON utilizzare “Admin”, il nome o l’URL del tuo sito web per questo nome utente.
  • Password: prendi nota di questa password prima di proseguire.
  • La tua e-mail: l’indirizzo e-mail per il principale nome utente di amministrazione.

Quindi fai clic sul pulsante Installa WordPress per completare l’installazione.

Immagine: Screenshot del corretto completamento dell’installazione di WordPress
Il messaggio indica che l’installazione è stata eseguita correttamente.

Una volta completata l’installazione correttamente, riceverai un messaggio di conferma e potrai accedere a WordPress.

Esecuzione di WordPress con Docker Compose

In alternativa puoi utilizzare Docker Compose per eseguire WordPress. Trovi maggiori informazioni sull’installazione e sull’utilizzo di Docker Compose nel nostro articolo Orchestrazione di Docker con Swarm e Compose. In generale, questo strumento permette di definire tutti i servizi necessari in un unico file e di avviarli insieme.

Creazione di un file YAML

Per prima cosa, crea una cartella per il tuo progetto. Quindi accedi alla cartella appena creata:

sudo mkdir wordpress
cd wordpress

Crea un file YAML con il nome docker-compose.yml con il comando seguente:

sudo nano docker-compose.yml

Il contenuto del file cambia leggermente a seconda che utilizzi MySQL o MariaDB:

MySQL

Inserisci le seguenti informazioni nel file:

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mysql
    ports:
        - 8080:80
wordpress_db:
    image: mysql
    environment:
        MYSQL_ROOT_PASSWORD: PASSWORD_SICURA

Salva e chiudi il file.

MariaDB

Inserisci le seguenti informazioni nel file:

wordpress:
    image: wordpress:latest
    links:
        - wordpress_db:mariadb
    ports:
        - 8080:80
wordpress_db:
    image: mariadb
    environment:
        MYSQL_ROOT_PASSWORD: PASSWORD_SICURA

Salva e chiudi il file.

Avvio dei container

Utilizza quindi Docker Compose per avviare questi container con il seguente comando:

sudo docker-compose up -d

Il comando seguente ti permette di verificare che i container siano stati creati:

sudo docker-compose ps

Per completare l’installazione, apri il container di WordPress in un browser. A tal fine, utilizza l’indirizzo IP o l’URL del server:

  • http://192.168.0.1:8080
  • http://example.com:8080

Kubernetes per deployment scalabili di WordPress

È possibile utilizzare Kubernetes (K8s) per configurazioni più estese e produttive. Questa piattaforma ti permette di orchestrare e gestire automaticamente i container di WordPress su più nodi. L’uso di cluster Kubernetes offre una serie di vantaggi, come la scalabilità automatica, i meccanismi di “self-healing” (auto-rigenerazione) e una gestione centralizzata delle risorse. Ad esempio, è possibile eseguire un’implementazione con Helm, un gestore di pacchetti per Kubernetes:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-wordpress bitnami/wordpress --set service.type=LoadBalancer

In questo modo si ottiene una distribuzione WordPress scalabile e a prova di errore con load balancing (bilanciamento del carico), aggiornamenti automatici e supporto per il failover.

New call-to-action
Hai trovato questo articolo utile?
Vai al menu principale