Come configurare lo stack LAMP con Docker Compose

5 feb 2024 3 min di lettura
Come configurare lo stack LAMP con Docker Compose
Indice dei contenuti

Introduzione

Nel panorama in evoluzione dello sviluppo web, sfruttare la potenza della containerizzazione tramite Docker è diventato un punto di svolta, soprattutto quando si distribuiscono ambienti complessi come uno stack LAMP (Linux, Apache, MySQL, PHP). Questo tutorial ha lo scopo di guidarti attraverso un processo fluido di configurazione di uno stack LAMP utilizzando Docker-Compose, con una svolta in più: includeremo un passaggio sulla personalizzazione dell'ambiente PHP per includere moduli aggiuntivi e Composer, il gestore delle dipendenze PHP.

Prerequisiti

Prima di immergerci nel processo di configurazione, assicurati di aver installato quanto segue sul tuo sistema:

  • Docker : una piattaforma per lo sviluppo, la spedizione e l'esecuzione di applicazioni in contenitori.
  • Docker-Compose : uno strumento per definire ed eseguire applicazioni Docker multi-contenitore.

Puoi verificare l'installazione di questi strumenti eseguendo docker -vdocker-compose -vnel tuo terminale. Se non li hai ancora installati, visita il sito Web ufficiale di Docker per le istruzioni di installazione.

Passaggio 1: crea un file Docker-Compose

Inizia creando un file docker-compose.yml nella directory del tuo progetto. Questo file è fondamentale in quanto orchestra la configurazione del tuo stack LAMP, specificando come ogni servizio dovrebbe essere costruito e interagire.

version: '3'
services:
  web:
    build: .
    container_name: apache-php
    ports:
      - "80:80"
    volumes:
      - ./www:/var/www/html
  db:
    image: mysql:8
    container_name: mysql-server
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secure_password
      MYSQL_DATABASE: mydb
      MYSQL_USER: myuser
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

Questa configurazione descrive in dettaglio due servizi principali: web per Apache e PHP e db per MySQL. Notare la build: .direttiva sotto web, che indica che Docker dovrebbe utilizzare un Dockerfile nella directory corrente per creare questo servizio.

Passaggio 2: personalizza PHP con un Dockerfile

Per incorporare moduli PHP aggiuntivi e Composer, crea un Dockerfile nella stessa directory del tuo docker-compose.yml. Questo Dockerfile istruirà Docker su come preparare il tuo ambiente PHP personalizzato.

FROM php:8.3-apache

# Install additional PHP modules
RUN docker-php-ext-install pdo_mysql mysqli

# Install Composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
    php -r "unlink('composer-setup.php');"

# Enable Apache mod_rewrite
RUN a2enmod rewrite

Questo Dockerfile estende l' immagine php:8.3-apache aggiungendo le estensioni pdo_mysql e mysqli per le interazioni con il database e installando Composer a livello globale.

Passaggio 3: creazione ed esecuzione dei contenitori

Con il file docker-compose.yml pronto, ora puoi avviare il tuo stack LAMP. Apri un terminale, vai alla directory del tuo progetto in cui si trova il file docker-compose.yml ed esegui il seguente comando:

docker-compose up -d 

Il flag -d esegue i tuoi contenitori in modalità distaccata, liberando il tuo terminale. Docker-Compose estrarrà le immagini necessarie da Docker Hub, creerà i servizi definiti e configurerà la rete e i volumi come specificato.

Passaggio 4: accesso allo stack LAMP

Una volta che i contenitori sono attivi e funzionanti, puoi accedere al tuo server Apache visitando http://localhost nel tuo browser web. Dovresti vedere la pagina Apache predefinita o il contenuto della tua directory ./www se hai aggiunto file HTML o PHP.

Per interagire con il tuo database MySQL, puoi utilizzare il seguente comando per accedere alla CLI MySQL:

docker-compose exec db mysql -uroot -proot

Se necessario , sostituisci root con la password che hai definito nel file docker-compose.yml.

Passaggio 5: gestione dello stack LAMP

Docker-Compose semplifica l'arresto, l'avvio e la ricostruzione dei servizi. Utilizzare i seguenti comandi secondo necessità:

  • Per fermare i tuoi contenitori:docker-compose down
  • Per avviare nuovamente i contenitori:docker-compose up -d
  • Per ricostruire i servizi dopo aver apportato modifiche:docker-compose up -d --build

Conclusione

La distribuzione di uno stack LAMP utilizzando Docker e Docker-Compose non solo semplifica il processo di configurazione, ma garantisce anche la coerenza tra diversi ambienti di sviluppo, test e produzione. Seguendo questo tutorial passo passo, hai imparato come definire i tuoi servizi in un file docker-compose.yml, eseguire i tuoi contenitori e gestire il tuo stack LAMP senza sforzo. Con queste competenze, ora sei in grado di distribuire applicazioni Web in modo rapido ed efficiente, sfruttando la potenza della containerizzazione.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.