Questo tutorial raccoglie qualche appunto per l’installazione di PHP 5.6 su Debian 9 usando Docker.
Premessa
In questi giorni mi sono trovato a dover migrare una vecchia applicazione che non è compatibile con PHP 7 su un server più aggiornato. Ho voluto evitare l’uso di repository non ufficiali e le complicanze derivanti dalla convivenza di due differenti versioni di PHP sulla stessa macchina.
Cosa è Docker?
In breve, Docker è un contenitore indipendente di microservizi isolato dal sistema host. Contiene uno o più applicativi e le relative dipendenze in un ambiente virtuale e può essere eseguito in una o più istanze.
Per l’installazione, rimando alla guida Come installare Docker su Debian.
Installare l’immagine di PHP e creazione del file di configurazione YAML
Nell’archivio di Docker ho trovato una immagine con PHP+NGINX creata da navidonskis che rispondeva alle mie esigenze. Sul terminale del server ho scaricato l’immagine con
root@localhost:~# docker pull navidonskis/nginx-php5.6
L’immagine pesa circa 450MB e contiene tutto il software applicativo e le relative dipendenze.
Per tenere traccia della configurazione (e per gli sviluppi futuri) ho usato un file YAML per la configurazione del container:
web: image: navidonskis/nginx-php5.6 container_name: myapp restart: always ports: - "127.0.0.1:8080:80" volumes: # 1. monta il path della cartella - /path/della/mia/vecchia/applicazione:/var/www # 2. monta la configurazione del sito - /mnt/docker/applicazione/nginx/sites-enabled:/etc/nginx/sites-enabled # 3. creo l'override del file php.ini - /mnt/docker/applicazione/php/custom.ini:/etc/php/5.6/fpm/conf.d/custom.ini
Il file di configurazione è piuttosto intuitivo, l’unica nota è la mappatura della porta: l’immagine che sto utilizzando espone la porta 80. Visto che sul server girano altri applicativi ho deciso di mappare la porta 80 del container sulla porta 8080 del server.
Per la pubblicazione uso un server proxy (un’altra installazione di NGINX) configurato per redirigere il traffico della porta 8080 sulla porta 80.
Creazione e avvio del container
Per creare ed eseguire un container bisogna usare docker-compose
, un software aggiuntivo al docker
che abbiamo già installato.
Per l’installazione rimando al sito ufficiale.
root@localhost:~# docker-compose -f docker-compose.yml up -d
Il comando up
serve per creare e avviare il container, mentre il parametro -d
esegue il container come demone, liberando la shell.
Per verificare il corretto funzionamento, lanciamo da terminale il seguente comando:
root@localhost:~# docker ps
Dovremmo ottenere un risultato simile a questo:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a7d6932g5wee navidonskis/nginx-php5.6 "/bin/bash /cmd.sh" 12 minutes ago Up 12 minutes 127.0.0.1:8080->80/tcp myapp
Commenti recenti