RaspberryPi
Installazione e configurazione di WordPress come container Docker su Raspberry Pi

Installazione e configurazione di WordPress come container Docker su Raspberry Pi

I prerequisiti per seguire passo passo questa guida ovviamente sono:

  • avere a disposizione un Raspberry Pi
  • OS Raspbian (preferibilmente la versione Lite) installato
  • applicazione Docker installata

Fatta questa premessa, colleghiamoci in ssh sul nostro Raspberry Pi e andiamo a creare una cartella che, nella fase iniziale ci servirà per fornire le informazioni necessarie all’installazione e successivamente conterrà i dati del nostro sito WordPress.

mkdir /home/pi/docker-myblog
cd /home/pi/docker-myblog
mkdir html data

Ora posizioniamoci nella cartella appena creata e qui andiamo a creare 3 file.
Il primo file da creare sarà docker-compose.yml che conterrà le informazioni dei container da scaricare (WordPress e mysql) e le relative configurazioni come ad esempio la porta da pubblicare verso l’esterno (80) e la cartella accessibile dall’esterno del container sia per il database che per le pagine html di worpress.

Dal terminale eseguiamo:

nano docker-compose.yml

ed incolliamo quanto segue all’interno:

version: '3'
services:
    wordpress:
        container_name: wordpress
        image: wordpress
        volumes:
            - ./html:/var/www/html
        ports:
            - '80:80'
        restart: always
        env_file:
            - blog_env
    mysql:
        container_name: mysql
        image: hypriot/rpi-mysql
        volumes:
            - ./data:/var/lib/mysql
        restart: always
        env_file:
            - mysql_env
volumes:
    mysql: null
    wordpress: null

Premere CTRL+X per chiudere e salvare, confermare il nome del file premendo il tasto S ed infine premere INVIO.

Il secondo file sarà mysql_env che conterrà le informazioni necessarie per impostare mysql (ovviamente sostituite le password).

Eseguiamo anche qui il seguente comando per modificare il file attraverso l’editor di testo nano

sudo nano mysql_env

e riportiamo quanto segue:

MYSQL_ROOT_PASSWORD=secret
MYSQL_DATABASE=blog
MYSQL_USER=blog_user
MYSQL_PASSWORD=blogSecret

Anche qui premere CTRL+X per chiudere e salvare, confermare il nome del file premendo il tasto S ed infine premere INVIO.

Terzo ed ultimo file è blog_env che contiene gli stessi dati precedenti, ma che verranno passati a WordPress.

Anche qui eseguiamo il seguente comando per modificare il file con l’editor di testo nano

sudo nano blog_env

e riportiamo quanto segue:

WORDPRESS_DB_HOST=mysql
WORDPRESS_DB_USER=blog_user
WORDPRESS_DB_PASSWORD=blogSecret
WORDPRESS_DB_NAME=blog

Anche qui premere CTRL+X per chiudere e salvare, confermare il nome del file premendo il tasto S ed infine premere INVIO.

Arrivati a questo punto, non ci resta che lanciare il seguente comando per far si che Docker scarichi ed installi le immagini di wordpress e mysql dal dockerhub con i parametri forniti nel file yml

sudo docker-compose up -d --build

Ora non ci resta che completare l’installazione tramite l’interfaccia web di WordPress, per cui apriamo il nostro web-browser preferito ed inseriamo l’indirizzo IP del nostro Raspberry Pi e verremo reindirizzati sulla seguente pagina

La pagina di istallazione di WordPress

Buon divertimento!

10 thoughts on “Installazione e configurazione di WordPress come container Docker su Raspberry Pi

    • Author gravatar

      Ciao e grazie per questa guida.
      L’ho seguita solo dopo aver installato Docker e Docker Compose come suggerito in un’altra guida su withblue.ink
      Funziona. Cioè, digito l’IP dentro al browser e vedo l’installer di WP.
      Ma cosa dovrei fare se volessi testare più siti contemporaneamente?
      Grazie per l’aiuto.

      • Author gravatar

        Ciao Alessandro,
        se vuoi aggiungere un ulteriore sito ti consiglierei di creare un altro container di wordpress in docker, ovviamente modificando la porta esterna (ad esempio 81:80) nel file docker-compose.yml. Anche per il db da dedicare al secondo sito, puoi creare un ulteriore container di mysql (ovviamente chiamato in modo diverso rispetto al precedente). Qui di seguito un esempio del file docker-compose.yml

        version: '3'
        services:
        wordpress:
        container_name: wordpress2
        image: wordpress
        volumes:
        - '/home/pi/docker-myblog2/html:/var/www/html'
        ports:
        - '81:80'
        restart: always
        env_file:
        - blog_env
        mysql:
        container_name: mysql2
        image: hypriot/rpi-mysql
        volumes:
        - '/home/pi/docker-myblog2/data:/var/lib/mysql2'
        restart: always
        env_file:
        - mysql_env
        volumes:
        mysql: null
        wordpress: null

        ovviamente dovrai creare anche un nuovo file mysql_env e blog_env da inserire nella nuova cartella

    • Author gravatar

      Grazie mille per l’aiuto! Comincio a capire il funzionamento – giustificato allo scopo – di Docker.
      Una configurazione per ciascun container.
      Una cosa mi sfugge: perché questa tua configurazione installa apache di default? Non mi pare sia specificato. A meno che non lo sia dall’espressione “image: wordpress”.
      Ho visto in altri casi usare:
      webserver:
      depends_on:
      – wordpress
      image: nginx:1.15.12-alpine
      container_name: webserver
      ecc ecc ecc…
      Porta pazienza, ancora non conosco Docker e la sua sintassi.

      • Author gravatar

        Nella maggior parte dei progetti trovati su internet viene utilizzato apache con waordpress, nulla toglie che se ti trovi meglio con nginx puoi utilizzare quello per la gestione delle pagine web

    • Author gravatar

      Mi sono dimenticato di chiederti la cosa più importante!
      Se con il primo container il sito risponde ed è visibile digitando l’ip del rpi, come raggiungo gli altri wordpress degli altri container?

    • Author gravatar

      Grazie mille del supporto!

    • […] un precedente articolo ho descritto come installare WordPress come container in Docker.Quest’oggi andrò a spiegare […]

    • Author gravatar

      Ciao. Soluzione riprovata a distanza di qualche tempo, purtroppo non riesco a far andare nulla, nemmeno una sola istanza di wp. Perdona, non sono un esperto, tuttavia pensavo di aver capito come gestire più siti su più porte, ma non sono mai riuscito a far partire niente. Mi propongo come aiutante nel caso volessi riscrivere la guida in modo più approfondito. 🙂

      • Author gravatar

        Ciao,
        ho provato a eseguire l’installazione come da guida ed effettivamente c’è un problema … ho notato però che il problema risiede con i file (di default) di wordpress. Per raggirare il problema ho fatto quanto segue (prima di lanciare il comando docker-compose up -d).
        Mi sono posizionato all’interno della cartella /home/pi/docker-myblog/html e da qui ho lanciato i seguenti comandi:
        wget https://wordpress.org/latest.tar.gz
        tar -xzvf latest.tar.gz
        mv /home/pi/docker-myblog/html/wordpress/* /home/pi/docker-myblog/html/
        rm latest.tar.gz
        rmdir wordpress
        cd ..
        docker-compose up -d

Lascia un commento

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