# Configurazione di WordPress nei container Docker

Scopri come realizzare un’installazione di WordPress nei container [Docker](https://www.ionos.it/digitalguide/server/know-how/cose-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.

## Requisiti

Per far girare WordPress facilmente nei container Docker è necessaria una [distribuzione Linux](https://www.ionos.it/digitalguide/server/configurazione/distribuzioni-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](https://www.ionos.it/digitalguide/server/know-how/ubuntu-il-sistema-linux-per-tutti/) 22.04 LTS o una versione più recente
- [Debian 12](https://www.ionos.it/digitalguide/server/know-how/debian-il-sistema-operativo-universale/) o una versione più recente
- Una versione aggiornata di Red Hat Enterprise Linux (RHEL) o [AlmaLinux](https://www.ionos.it/digitalguide/server/configurazione/almalinux-cosa-offre-la-nuova-distribuzione-linux/)

Inoltre, devi aver [installato Docker](https://www.ionos.it/digitalguide/server/configurazione/tutorial-di-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](https://www.ionos.it/digitalguide/server/configurazione/docker-compose-tutorial/) e Docker. Se prevedi di utilizzare configurazioni particolarmente estese o scalabili, ti consigliamo di considerare anche [Kubernetes](https://www.ionos.it/digitalguide/server/know-how/che-cose-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](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/mariadb-vs-mysql/), che è un sostituto “drop-in”, ossia diretto, di MySQL.

#### MySQL

Avvia un container con il comando:

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

#### MariaDB

Avvia un container con il comando:

```none
sudo docker run --name my-db -e MYSQL_ROOT_PASSWORD=PASSWORD_SICURA -d mariadb:latest
```

N.B. Assicurati sempre di utilizzare una [password sicura](https://www.ionos.it/digitalguide/server/sicurezza/proteggere-informazioni-sensibili-con-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:

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

Crea un database:

```none
CREATE Database wordpress-db;
```

#### MariaDB

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

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

Crea un database:

```none
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](https://www.ionos.it/digitalguide/server/sicurezza/cose-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:

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

#### MariaDB

Avvia un container WordPress con il comando:

```none
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:

```none
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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/cosa-sono-i-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](https://www.ionos.it/digitalguide/fileadmin/_processed_/1/e/csm_wp-docker-choose-language_151c6541cf.webp "Screenshot della selezione della lingua di WordPress")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-choose-language.png) 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](https://www.ionos.it/digitalguide/fileadmin/_processed_/e/1/csm_wp-docker-note_8a0a5ea326.webp "Screenshot della nota di installazione di WordPress")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-note.png) 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](https://www.ionos.it/digitalguide/fileadmin/_processed_/c/3/csm_wp-docker-db-info_5f25200edc.webp "Screenshot della connessione al database di WordPress")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-db-info.png) 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](https://www.ionos.it/digitalguide/fileadmin/_processed_/9/2/csm_wp-docker-page-info_369afff846.webp "Screenshot dell’installazione di WordPress: informazioni sulla pagina di WordPress")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-page-info.png) 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](https://www.ionos.it/digitalguide/fileadmin/_processed_/6/9/csm_wp-docker-success_ffbb3fccf5.webp "Screenshot del corretto completamento dell’installazione di WordPress")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2024/wp-docker-success.png) 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](https://www.ionos.it/digitalguide/server/know-how/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:

```none
sudo mkdir wordpress
cd wordpress
```

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

```none
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:

```none
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:

```none
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:

```none
sudo docker-compose up -d
```

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

```none
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](https://www.ionos.it/digitalguide/server/know-how/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:

```none
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](https://www.ionos.it/digitalguide/server/know-how/load-balancer-bilanciamento-del-carico-nel-server/) (bilanciamento del carico), aggiornamenti automatici e supporto per il failover.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/know-how/wordpress-su-container-docker/](https://www.ionos.it/digitalguide/server/know-how/wordpress-su-container-docker/) for AI/LLM consumption.