Installazione del LEMP Stack su Ubuntu

Questa guida descrive i passaggi per installare il LEMP Stack (Linux, Nginx, MySQL, PHP) su un server Ubuntu.
Al termine, configureremo un esempio di pagina PHP per mostrare una lista di articoli di un e-commerce.

Passaggi principali

  1. Installazione di Nginx
  2. Installazione di MySQL
  3. Installazione di PHP
  4. Configurazione di Nginx per PHP
  5. Test di una pagina PHP
  6. Esempio di pagina PHP per e-commerce

1. Installazione di Nginx

Aggiorna i pacchetti e installa Nginx:

sudo apt update
sudo apt install nginx

Verifica che Nginx sia in esecuzione:

sudo systemctl status nginx

2. Installazione di MySQL

Installa il server MySQL:

sudo apt install mysql-server

Esegui lo script di sicurezza:

sudo mysql_secure_installation

3. Installazione di PHP

Installa PHP e il modulo per MySQL:

sudo apt install php-fpm php-mysql

4. Configurazione di Nginx per PHP

Crea un blocco server per il tuo dominio:

sudo nano /etc/nginx/sites-available/ecommerce

Inserisci la seguente configurazione:

server {
    listen 80;
    server_name ecommerce.test www.ecommerce.test;
    root /var/www/ecommerce;
    index index.php index.html;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }
}

Attiva il sito e ricarica Nginx:

sudo ln -s /etc/nginx/sites-available/ecommerce /etc/nginx/sites-enabled/
sudo systemctl reload nginx

5. Test di una pagina PHP

Crea un file info.php:

sudo nano /var/www/ecommerce/info.php

Aggiungi il seguente codice:

<?php
phpinfo();

Visita http://ecommerce.test/info.php per verificare.

6. Esempio di pagina PHP per e-commerce

Crea un file products.php:

sudo nano /var/www/ecommerce/products.php

Aggiungi il seguente codice:

<?php
// Connessione al database
$conn = new mysqli('localhost', 'username', 'password', 'ecommerce');
if ($conn->connect_error) {
    die("Connessione fallita: " . $conn->connect_error);
}

// Query per ottenere gli articoli
$result = $conn->query("SELECT id, nome, prezzo FROM prodotti");
if ($result->num_rows > 0) {
    echo "<table><tr><th>ID</th><th>Nome</th><th>Prezzo</th></tr>";
    while ($row = $result->fetch_assoc()) {
        echo "<tr><td>" . $row["id"] . "</td><td>" . $row["nome"] . "</td><td>" . $row["prezzo"] . "</td></tr>";
    }
    echo "</table>";
} else {
    echo "Nessun prodotto trovato.";
}
$conn->close();

Visita http://ecommerce.test/products.php per visualizzare la lista di prodotti.

Riferimenti