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
- Installazione di Nginx
- Installazione di MySQL
- Installazione di PHP
- Configurazione di Nginx per PHP
- Test di una pagina PHP
- 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.