Installazione dello stack LEMP dockerizzato con Docker Compose


Questa guida fornisce le istruzioni necessarie ad installare lo stack LEMP utilizzando Docker Compose e a deployare un’applicazione PHP. Verrà creata una semplice applicazione per visualizzare una lista di articoli di un e-commerce.

Prerequisiti

Configurazione dello stack LEMP

Iniziare creando un file docker-compose.yml nella directory del progetto:


services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - php
      - mysql

  php:
    image: php:8.2-fpm
    container_name: php
    volumes:
      - ./app:/var/www/html

  mysql:
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: ecommerce
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

Creare i file e le directory necessari:


mkdir -p app config/nginx
touch config/nginx/default.conf

Configurare Nginx creando un file default.conf nella directory config/nginx:


server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Avvio dei container

Eseguire il comando per avviare i servizi:


docker-compose up -d

Verificare che tutti i container siano in esecuzione:


docker-compose ps

Creazione dell’applicazione PHP

Creare un file index.php nella directory app con il seguente contenuto:


<?php
$articoli = [
    ['id' => 1, 'nome' => 'Articolo 1', 'prezzo' => 10.99],
    ['id' => 2, 'nome' => 'Articolo 2', 'prezzo' => 15.99],
    ['id' => 3, 'nome' => 'Articolo 3', 'prezzo' => 8.99],
];

echo "<h1>Lista di articoli</h1>";
echo "<ul>";
foreach ($articoli as $articolo) {
    echo "<li>" . htmlspecialchars($articolo['nome']) . " - $" . number_format($articolo['prezzo'], 2) . "</li>";
}
echo "</ul>";
?>

Test dell’applicazione

Aprire il browser e navigare all’indirizzo http://localhost. Verrà visualizzata la lista degli articoli del nostro e-commerce.

Riferimenti

Lascia un commento

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