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

Configurare msmtp: un Client SMTP Leggero

msmtp è un client SMTP leggero e versatile, ideale per inviare email da script o applicazioni collegandosi ad un servizio smtp quindi senza dovere installare e configurare un server di posta completo.
Si integra facilmente con strumenti come Mailutils o
Mutt. Questo articolo esplora le funzionalità di msmtp e fornisce esempi pratici di configurazione.

Configurazione di base

msmtp utilizza un file di configurazione per definire i parametri necessari alla connessione a un server SMTP.
Il file di configurazione predefinito è ~/.msmtprc. Assicurati che i permessi del file siano impostati correttamente per garantire la sicurezza:


chmod 600 ~/.msmtprc

    

Esempio 1: Configurazione per Gmail personale

Questa configurazione consente di utilizzare un account Gmail personale per inviare email.


# ~/.msmtprc
account gmail
host smtp.gmail.com
port 587
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
user your-email@gmail.com
password your-password
from your-email@gmail.com
logfile ~/.msmtp.log

    

Per maggiore sicurezza, utilizza un file separato per salvare la password e modifica il parametro password per leggerla da lì.

Esempio 2: Configurazione per Gmail aziendale (Google Workspace)

Questa configurazione è specifica per gli account aziendali di Google Workspace (ex G Suite).


# ~/.msmtprc
account gmail-workspace
host smtp.gmail.com
port 587
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
user your-business-email@domain.com
password your-password
from your-business-email@domain.com
logfile ~/.msmtp.log

    

Esempio 3: Configurazione per Yahoo Mail

Per inviare email tramite un account Yahoo, utilizza questa configurazione:


# ~/.msmtprc
account yahoo
host smtp.mail.yahoo.com
port 587
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
user your-email@yahoo.com
password your-password
from your-email@yahoo.com
logfile ~/.msmtp.log

    

Esempio 4: Utilizzo di msmtp con Amazon SES

Amazon Simple Email Service (SES) richiede una configurazione leggermente diversa:


# ~/.msmtprc
account amazon-ses
host email-smtp..amazonaws.com
port 587
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
user your-smtp-username
password your-smtp-password
from your-verified-email@example.com
logfile ~/.msmtp.log

    

Riferimenti

Gli Alias in PHP Composer


Questo articolo esplora il concetto di aliasing in PHP Composer, e ne dimostra l’utilizzo con esempi pratici.

Cosa sono gli Alias in PHP Composer?

Composer, il gestore delle dipendenze per PHP, utilizza gli alias per semplificare e migliorare la gestione delle dipendenze.
Un alias in Composer ti consente di:

  • Fare riferimento a versioni specifiche di un pacchetto utilizzando identificatori alternativi.
  • Installare metapacchetti che raggruppano dipendenze correlate sotto un unico identificatore.

Gli alias sono particolarmente utili quando si utilizzano i “pack” di Symfony, che aggregano più pacchetti per fornire funzionalità pronte all’uso.
Per maggiori dettagli, puoi visitare la
documentazione ufficiale sugli Alias di Composer.

Esempio: L’Alias del Pack ORM di Symfony

Questo esempio pratico utilizza l’alias di Symfony per il suo pack di Object-Relational Mapping (ORM).

Quando si esegue il comando:


composer require orm

            

Composer interpreta l’alias orm come riferimento al symfony/orm-pack,
un metapacchetto che installa un gruppo di dipendenze relative a Doctrine, come:

  • doctrine/orm
  • doctrine/dbal
  • symfony/doctrine-bridge
  • …e altro.

Ecco un esempio dell’esecuzione del comando:


composer require orm

            

Composer aggiorna il file composer.json così:


{
    "require": {
        "symfony/orm-pack": "^2.4"
    }
}

            

Composer quindi installa tutte le dipendenze elencate nel pack, come doctrine/orm, doctrine/dbal e altre. Tuttavia, il pacchetto symfony/orm-pack stesso viene spesso rimosso dal file composer.lock dopo l’installazione, poiché serve solo come contenitore.

Come Verificare Alias e Dipendenze

Il comando composer show verificare le dipendenze installate:


composer show

            

Cerca le dipendenze elencate nell’output. Sebbene il metapacchetto stesso possa non apparire, i suoi componenti individuali saranno presenti.

Conclusione

Gli alias di Composer, come orm di Symfony, semplificano la gestione delle dipendenze fornendo comandi abbreviati per pacchetti complessi o metapacchetti. Un utilizzo appropriato puo semplificare i progetti PHP e mantenere configurazioni delle dipendenze più pulite.