array(6) {
  [0]=>
  array(12) {
    ["id_slide"]=>
    string(2) "66"
    ["background"]=>
    string(51) "linear-gradient(to left, #192a43 50%, #e6f1fc 50%);"
    ["position"]=>
    string(1) "0"
    ["active"]=>
    string(1) "1"
    ["title"]=>
    string(14) "aiuta ambiente"
    ["url"]=>
    string(1) "#"
    ["legend"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["image"]=>
    string(48) "b9e9b06add848a7b84ce01122a590f0be7d87b6e_d2b.jpg"
    ["image_url"]=>
    string(103) "https://hi-techoutlet.it/modules/ps_imageslider/images/b9e9b06add848a7b84ce01122a590f0be7d87b6e_d2b.jpg"
    ["sizes"]=>
    array(7) {
      [0]=>
      int(1900)
      [1]=>
      int(760)
      [2]=>
      int(2)
      [3]=>
      string(25) "width="1900" height="760""
      ["bits"]=>
      int(8)
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
    }
    ["size"]=>
    string(25) "width="1900" height="760""
  }
  [1]=>
  array(12) {
    ["id_slide"]=>
    string(2) "67"
    ["background"]=>
    string(52) "linear-gradient(to left, #e6f1fc  50%, #e6f1fc 50%);"
    ["position"]=>
    string(1) "0"
    ["active"]=>
    string(1) "1"
    ["title"]=>
    string(6) "valori"
    ["url"]=>
    string(1) "#"
    ["legend"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["image"]=>
    string(47) "80310674649f5450ae3eccf1b0af5801df9c8e64_d1.jpg"
    ["image_url"]=>
    string(102) "https://hi-techoutlet.it/modules/ps_imageslider/images/80310674649f5450ae3eccf1b0af5801df9c8e64_d1.jpg"
    ["sizes"]=>
    array(7) {
      [0]=>
      int(1200)
      [1]=>
      int(400)
      [2]=>
      int(2)
      [3]=>
      string(25) "width="1200" height="400""
      ["bits"]=>
      int(8)
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
    }
    ["size"]=>
    string(25) "width="1200" height="400""
  }
  [2]=>
  array(12) {
    ["id_slide"]=>
    string(2) "68"
    ["background"]=>
    string(0) ""
    ["position"]=>
    string(1) "0"
    ["active"]=>
    string(1) "1"
    ["title"]=>
    string(20) "Mobile - usb omaggio"
    ["url"]=>
    string(1) "#"
    ["legend"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["image"]=>
    string(53) "d37c6dac79227ad6e6ab0ef4ad2087ccc147e890_mobile 2.jpg"
    ["image_url"]=>
    string(108) "https://hi-techoutlet.it/modules/ps_imageslider/images/d37c6dac79227ad6e6ab0ef4ad2087ccc147e890_mobile 2.jpg"
    ["sizes"]=>
    array(7) {
      [0]=>
      int(1200)
      [1]=>
      int(1200)
      [2]=>
      int(2)
      [3]=>
      string(26) "width="1200" height="1200""
      ["bits"]=>
      int(8)
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
    }
    ["size"]=>
    string(26) "width="1200" height="1200""
  }
  [3]=>
  array(12) {
    ["id_slide"]=>
    string(2) "69"
    ["background"]=>
    string(0) ""
    ["position"]=>
    string(1) "0"
    ["active"]=>
    string(1) "1"
    ["title"]=>
    string(15) "Mobile - valori"
    ["url"]=>
    string(1) "#"
    ["legend"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["image"]=>
    string(52) "a132c2534ff84fa61c49bf5e70a1f57cc7e42305_mobile1.jpg"
    ["image_url"]=>
    string(107) "https://hi-techoutlet.it/modules/ps_imageslider/images/a132c2534ff84fa61c49bf5e70a1f57cc7e42305_mobile1.jpg"
    ["sizes"]=>
    array(7) {
      [0]=>
      int(1200)
      [1]=>
      int(1200)
      [2]=>
      int(2)
      [3]=>
      string(26) "width="1200" height="1200""
      ["bits"]=>
      int(8)
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
    }
    ["size"]=>
    string(26) "width="1200" height="1200""
  }
  [4]=>
  array(12) {
    ["id_slide"]=>
    string(2) "70"
    ["background"]=>
    string(52) "linear-gradient(to left, #e6f1fc  50%, #e6f1fc 50%);"
    ["position"]=>
    string(1) "0"
    ["active"]=>
    string(1) "1"
    ["title"]=>
    string(7) "process"
    ["url"]=>
    string(1) "#"
    ["legend"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["image"]=>
    string(58) "87546ceabb1dc1a59c4d6e884fdff605a12a3945_slide-process.jpg"
    ["image_url"]=>
    string(113) "https://hi-techoutlet.it/modules/ps_imageslider/images/87546ceabb1dc1a59c4d6e884fdff605a12a3945_slide-process.jpg"
    ["sizes"]=>
    array(7) {
      [0]=>
      int(1200)
      [1]=>
      int(400)
      [2]=>
      int(2)
      [3]=>
      string(25) "width="1200" height="400""
      ["bits"]=>
      int(8)
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
    }
    ["size"]=>
    string(25) "width="1200" height="400""
  }
  [5]=>
  array(12) {
    ["id_slide"]=>
    string(2) "71"
    ["background"]=>
    string(0) ""
    ["position"]=>
    string(1) "0"
    ["active"]=>
    string(1) "1"
    ["title"]=>
    string(16) "Mobile - process"
    ["url"]=>
    string(1) "#"
    ["legend"]=>
    string(0) ""
    ["description"]=>
    string(0) ""
    ["image"]=>
    string(65) "937a74b27b8ecdccb53086ebfb5a9013dec13a9a_slide-process-mobile.jpg"
    ["image_url"]=>
    string(120) "https://hi-techoutlet.it/modules/ps_imageslider/images/937a74b27b8ecdccb53086ebfb5a9013dec13a9a_slide-process-mobile.jpg"
    ["sizes"]=>
    array(7) {
      [0]=>
      int(1200)
      [1]=>
      int(1200)
      [2]=>
      int(2)
      [3]=>
      string(26) "width="1200" height="1200""
      ["bits"]=>
      int(8)
      ["channels"]=>
      int(3)
      ["mime"]=>
      string(10) "image/jpeg"
    }
    ["size"]=>
    string(26) "width="1200" height="1200""
  }
}
Come installare WordPress e MariaDB in locale con Docker su Ubuntu

Come installare WordPress e MariaDB in locale con Docker su Ubuntu

  Recensioni

In questo tutorial vedremo come installare WordPress con Docker su Ubuntu ed avere un deployment automatizzato e leggero basato sui container.

Docker è uno strumento open source con cui possiamo isolare i processi e le risorse di un kernel Linux per creare “container” modulari e indipendenti ognuno dall’altro e con più processi e applicazioni diverse. Isolando ambienti e dipendenze rendiamo di fatto lo sviluppo di qualsiasi applicazione estremamente sicuro, portabile e leggero.

Partiamo con l’installazione di Docker su Ubuntu

Docker riesce ad astrarre ogni sistema operativo su cui gira, condividendo solo il kernel e l’hardware della macchina fisica, e non ha bisogno di un Hypervisor per poter funzionare. Crea di fatto in questo modo dei container applicativi su misura, indipendenti dalla macchina virtuale o dal sistema operativo su cui girano, che operano in maniera isolata e in cui racchiude solo il codice utile allo sviluppo e solo le sue dipendenze. I Container inoltre peseranno solo alcuni MB rispetto ai GB utili a formare ogni volta delle virtual machine dedicate e sempre diverse, e si avvieranno in pochi secondi come una qualsiasi app sul nostro OS.

Prima di tutto andiamo ad installarlo, sulla nostra macchina virtuale o sul nostro sistema operativo Ubuntu. Abbiamo varie strade da poter seguire per farlo, scegliete quella con cui più vi trovate a vostro agio.

1) Tramite Snap

Dalle ultime versioni del suo OS, Canonical ha introdotto il sistema Snapcraft, l’installazione degli applicativi tramite Snap è molto semplice ed immediata, ci basta semplicemente digitare sul nostro terminale:

sudo snap install docker

Il sistema Snap scaricherà ed installerà in modo automatico il kit di sviluppo, direttamente in versione stabile dai suoi repository, in modo veloce e sicuro.

2) Tramite Docker Repository

In seconda battuta possiamo scaricare e installare Docker tramite i repository ufficiali e mantenerlo in questo modo costantemente aggiornato, questo è l’approccio consigliato dal team di sviluppo.

Prima di tutto abbiamo bisogno di configurarlo, ma iniziamo come sempre con gli aggiornamenti del nostro sistema operativo:

sudo apt update && sudo apt upgrade

Verifichiamo prima se è presente Curl nel nostro sistema

Per poter usare il repository di Docker per l’installazione abbiamo bisogno di Curl nel nostro sistema, verifichiamo se è già installato in questo modo:

curl -V

Di solito è preinstallato con molte distribuzioni Linux, ma se non dovesse esserci possiamo installarlo velocemente con questo comando:

sudo apt install curl

Possiamo ora installare Docker

Verificato ciò che concerne Curl, andiamo ad installare Docker, configuriamo il repository nel nostro sistema e installiamo i pacchetti utili ad apt per poter scaricare su HTTPS:

sudo apt-get install apt-transport-https

    ca-certificates

    curl

    software-properties-common

Aggiungiamo la chiave GPG ufficiale:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Possiamo verificare se abbiamo ottenuto la chiave confrontando gli ultimi 8 caratteri della fingerprint:

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22

      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88

uid                  Docker Release (CE deb) <docker@docker.com>

sub   4096R/F273FCD8 2017-02-22

Ottenuta la nostra chiave di sicurezza aggiungiamo il repository stabile:

sudo add-apt-repository

   "deb [arch=amd64] https://download.docker.com/linux/ubuntu

   $(lsb_release -cs)

   stable"

3) Tramite apt

Eseguiamo anche in questo caso, come sempre, prima gli aggiornamenti di sistema:

sudo apt update && sudo apt upgrade

Installiamo poi l’ultima versione di Docker CE (Community Edition):

sudo apt-get install docker-ce

Infine, verifichiamo se tutto è stato eseguito correttamente mandando a comando nella bash il classico “Hello World”:

sudo docker run hello-world

Docker funziona per immagini: tramite immagine è possibile avere un determinato pacchetto applicativo o raggruppare anche più pacchetti insieme in un’unica immagine, per poi farla girare in un container o anche su più container diversi. Un classico esempio di un’immagine a più applicativi può essere lo stack LAMP (Linux Apache MySQL PHP Perl o Python). Dando il comando run hello-world provvederà a scaricare e montare un’immagine test, creata ad hoc, in un container, per testare così il funzionamento di Docker sulla nostra macchina. Se il container gira perfettamente vedremo comparire nel terminale i suoi messaggi informativi. Le immagini sono sempre minimali, o quanto più minimali possibili, per avere container ottimizzati ed estremamente specifici, senza nulla di superfluo. In questo modo è possibile sfruttare il vantaggio di avere installazioni di pacchetti essenziali e di solo ciò che ci serve realmente o ciò di cui è strettamente necessario. È possibile scaricare più di 100.000 immagini di software e applicativi dai suoi repositories ufficiali, e di crearne anche di nuove e completamente personali, con lo stesso comando possiamo caricare su Docker tutte le immagini che vogliamo e montarle direttamente in un Container, allo stesso modo di hello-world, specificando di volta in volta i giusti parametri. Per questo vi rimandiamo all’ottima guida ufficiale sulla pagina https://docs.docker.com/

Montiamo un’immagine WordPress e un database MariaDB

Finita l’installazione di Docker, e verificato che tutto sia andato correttamente, possiamo ora montare la nostra immagine WordPress e quella di un database MariaDB.

Prima di tutto abbiamo bisogno di un ulteriore supporto: Docker Compose.

Installiamo Docker Compose

Docker compose è un tool che ci aiuta a ottimizzare le configurazioni e le impostazioni dei nostri stack, in modo molto semplice e intuitivo: semplicemente creando un file docker-compose.yml nella cartella di utilizzo dei nostri Container.

L’installazione è molto semplice, basta lanciare questo comando dalla nostra bash:

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

Il comando richiama l’ultima versione, che è al momento la 1.22.0. Potete verificare la versione in qualsiasi momento sulla pagina GitHub, in modo da poterla cambiare eventualmente nel comando.

Applichiamo anche i permessi di esecuzione al binary:

sudo chmod +x /usr/local/bin/docker-compose

E infine testiamo l’installazione:

docker-compose --version

docker-compose version 1.22.0, build 1719ceb

Creiamo un file Compose

Creiamo una cartella in cui vogliamo montare la nostra immagine, questa sarà il suo “ambiente”.

La cartella deve contenere solo le risorse che servono al funzionamento dell’immagine e null’altro, con sola eccezione per il file docker-compose.yml, che può essere scritto anche con estensione yaml.

Possiamo lanciare quindi un mkdir in questo modo, per poi spostarci subito all’interno della cartella appena creata:

mkdir ~/wordpress && cd ~/wordpress

Ora creiamo il nostro file docker-compose.yml con un editor come Nano, lanciamo:

sudo nano docker-compose.yml

Qui possiamo inserire tutte le configurazioni per il nostro stack, vi mostriamo il file compose da noi creato per l’uso in locale sulla nostra macchina:

------------------------------------------------------------

 version: "2"

services:

  mariadb:

    image: mariadb

    ports:

      - "8081:3306"

    restart: on-failure:5

    environment:

      MYSQL_ROOT_PASSWORD: myp@ssw0rd

  wordpress:

    image: wordpress:4.9.7-php7.2

    volumes:

      - ./public:/var/www/html

    ports:

      - "8080:80"

    restart: on-failure:5

    links:

      - mariadb:mysql

    environment:

      WORDPRESS_DB_PASSWORD: myp@ssw0rd

  phpmyadmin:

    image: phpmyadmin/phpmyadmin:latest

    ports:

      - 8082:80

    links:

      - mariadb:mysql

    environment:

      PMA_USER: root

      PMA_PASSWORD: myp@ssw0rd

      PMA_HOST: mysql

------------------------------------------------------------

Version: “2” si riferisce alle versioni di Docker supportate, nel nostro caso abbiamo inserito la 2 per garantire un buon supporto anche con versioni più datate. Potete controllare la lista di versioni sempre sulla pagina GitHub di Docker Compose.

Services è il Container su cui operiamo con le relative immagini e impostazioni di ognuna: quindi avremo WordPress 4.9.7 con PHP 7.2, MariaDB come database MySQL, e phpMyAdmin per la gestione del database.

La porta standard 3306 del database è stata mappata sulla 8081 per permetterci di lavorare in locale sulla nostra macchina.

Un altro parametro che bisogna configurare per il lavoro in locale è la dichiarazione di un Volume tramite: ‘volumes’ per WP. Per poter operare sul ‘localhost’ abbiamo bisogno di mappare i volumi fisici delle nostre macchine, in questo modo possiamo lavorare sui nostri file interni.

Quindi diremo di creare una cartella /public all’interno della cartella del nostro progetto, che a sua volta si interfaccia sulla cartella /var/www/html del server Apache all’interno del nostro Container.

‘environment’ infine dichiara le impostazioni specifiche, a seconda dei casi, per ogni ambiente: come ad esempio la password del database MySQL e con cui interfacciare WordPress, oppure la password e l’user di phpMyAdmin.

Salviamo e chiudiamo tutto e ritorniamo nella nostra cartella di progetto.

Avviamo il Container

È arrivato il momento di finalizzare il nostro intero progetto e di mettere su il nostro Container appena costruito.

Mandiamo nella bash il comando:

docker-compose up -d

Docker scaricherà in locale tutte le immagini assegnate e avvierà il Container, la dicitura -d è per un output non “verboso” al momento dell’avvio, quindi senza troppe informazioni che possono non essere utili in questo momento. Lo stesso comando funziona anche solo con docker-compose up.

Installiamo WordPress

Per installare WordPress a questo punto non dobbiamo far altro che puntare alla porta localhost:8080 dal nostro browser e atterrare sulla famosa schermata di “installazione in 5 minuti” di WP.

Mentre con localhost:8081 punteremo al database e con localhost:8082 ci connetteremo a phpMyAdmin.

Il tuo commento è stato inviato con successo. Grazie per il commento!
Lascia un commento
Captcha