Cosa sono gli stack LAMP e LEMP?
LAMP e LEMP indicano i quattro software che servono un sito web tipico: Linux, un web server, un database e PHP. La A di LAMP sta per Apache e la E di LEMP sta per Nginx (si pronuncia "engine-x", da cui la E). In entrambi gli stack il database è MySQL o MariaDB e il linguaggio di programmazione è PHP.
Le applicazioni PHP come WordPress, WooCommerce e Joomla girano su questo stack. WordPress.org consiglia Apache o Nginx come web server, quindi entrambi sono una base solida. Quale scegli non decide se la tua applicazione funziona. Cambia il modo in cui scrivi le impostazioni.
Come funziona lo stack?
| Livello | LAMP | LEMP | Ruolo |
|---|---|---|---|
| Sistema operativo | Linux | Linux | La base su cui gira tutto |
| Web server | Apache | Nginx | Risponde alle richieste dei browser |
| Database | MySQL o MariaDB | MySQL o MariaDB | Conserva articoli, utenti e ordini |
| Linguaggio | PHP | PHP, tramite PHP-FPM | Costruisce la pagina |
Una richiesta attraversa lo stack così:
- Il browser invia una richiesta al tuo dominio. Arriva alla porta 80 o 443 del tuo server.
- Il web server riceve la richiesta. Se la richiesta è per un'immagine o un file CSS, serve il file da solo.
- Se la richiesta è per un file PHP, il web server la passa a PHP e PHP esegue il codice.
- PHP interroga il database quando serve e costruisce la pagina. Il web server rimanda la pagina al browser.
Se una pagina non si apre, controlla i livelli in ordine: systemctl status nginx, systemctl status phpX.Y-fpm e systemctl status mariadb. X.Y indica la tua versione di PHP (8.3 su Ubuntu 24.04) e su LAMP usi apache2 al posto di nginx. Il problema parte da quello che non è in esecuzione.
Qual è la differenza tra LAMP e LEMP?
- Apache legge i file
.htaccesse Nginx no. Su Nginx le regole vanno nella configurazione del server. - Nginx non esegue PHP al suo interno. Passa le richieste a un servizio separato chiamato PHP-FPM. Apache può eseguire PHP al suo interno o tramite PHP-FPM.
- Le cartelle di configurazione sono diverse. Su Ubuntu, Apache usa
/etc/apache2e Nginx usa/etc/nginx. - L'uso della memoria dipende più dal numero di worker PHP-FPM e dalle impostazioni del database che dalla scelta del web server.
- Nessuno dei due è nettamente superiore. Entrambi sono molto usati, quindi decidono la guida che segui e le tue abitudini.
MySQL o MariaDB?
MariaDB è un database open source nato da una separazione da MySQL, e i loro comandi e client sono in gran parte compatibili. La pagina ufficiale dei requisiti di WordPress li accetta entrambi, quindi controlla lì le versioni minime attuali. Su Ubuntu il pacchetto mariadb-server si installa con un comando. Secondo la documentazione di MariaDB, dalla versione 10.4 l'account root usa per impostazione predefinita l'autenticazione unix_socket. Sul server basta eseguire sudo mariadb. Non serve nessuna password di root.
Creare LEMP su Ubuntu
Questi passaggi valgono per Ubuntu e Debian. Prima connettiti al server via SSH. Gli esempi usano example.com come nome di dominio, quindi sostituiscilo con il tuo.
- Aggiorna l'elenco dei pacchetti:
sudo apt update - Installa i pacchetti:
sudo apt install nginx mariadb-server php-fpm php-mysql. Le versioni installate sono quelle presenti nel repository dei pacchetti. - Metti in sicurezza il database:
sudo mariadb-secure-installation. Rispondi sì alla rimozione degli utenti anonimi, alla rimozione del database di test e al divieto di accesso root da remoto. - Crea la cartella del sito:
sudo mkdir -p /var/www/example - Apri un file con
sudo nano /etc/nginx/sites-available/examplee incolla questa riga:server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } } ls /run/php/mostra il nome reale del socket. Scrivilo al posto diphpX.Y-fpm.sock.- Attiva il sito:
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Prova e applica la configurazione:
sudo nginx -te poisudo systemctl reload nginx - Se usi ufw, apri le porte 80 e 443:
sudo ufw allow 80/tcpesudo ufw allow 443/tcp. Assicurati che la porta SSH (22) sia aperta.
Per verificare che PHP funzioni, scrivi un file di prova:
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Se il dominio non punta ancora al server, prova dall'interno del server con curl -H 'Host: example.com' http://127.0.0.1/info.php. Appena vedi che funziona, elimina il file: sudo rm /var/www/example/info.php. Quella pagina mostra a tutti i dettagli del tuo server.
Un database per la tua applicazione
Apri la shell del database con sudo mariadb e crea un database e un utente separati per ogni applicazione. Scegli tu una password robusta:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Inserisci questi tre valori (database, utente, password) nella schermata di configurazione di WordPress. Perché i permalink di WordPress funzionino, nella riga di Nginx sostituisci =404 con /index.php?$args.
Cosa cambia per LAMP?
Per lo stack Apache, installi i pacchetti così:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Definisci il sito in /etc/apache2/sites-available e lo attivi con sudo a2ensite example. Per i permalink, esegui sudo a2enmod rewrite e riavvia Apache con sudo systemctl restart apache2. Perché i file .htaccess abbiano effetto, devi impostare AllowOverride All per la cartella del sito. Puoi anche far girare Apache con PHP-FPM, che si adatta al modello event, basato sugli eventi. I passaggi per il database sono gli stessi di LEMP.
Dopo l'installazione
- Aggiungi un certificato HTTPS. Let's Encrypt è gratuito e Certbot funziona sia con Nginx sia con Apache.
- Imposta il proprietario delle cartelle in cui il web server deve scrivere. Su Ubuntu e Debian il web server gira come utente
www-data:sudo chown -R www-data:www-data /var/www/example. - Installa gli aggiornamenti con regolarità con
sudo apt update && sudo apt upgrade. Dopo l'installazione, gli aggiornamenti del sistema operativo e del software sono una tua responsabilità. - Fai il backup del database a parte con
mariadb-dump. Il backup giornaliero del server è incluso nel prezzo, ma dovresti comunque tenere tu una copia in più dei dati importanti.
Se vuoi lo stack pronto all'uso, ordina con l'opzione LAMP o LEMP di Seturack e si installa da solo. Se ti serve solo WordPress, basta l'opzione WordPress VPS: la configurazione richiede circa 4-5 minuti e l'indirizzo e la password compaiono nel pannello.
Commenti0
Ancora nessun commento
Condividi per primo la tua opinione.
Accedi o registrati per lasciare un commento.