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
- Un server con Docker e Docker Compose installati. Segui questa guida per Docker e questa per Docker Compose.
- Accesso SSH al server.
- Conoscenza di base di PHP e gestione di file YAML.
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.