Decidi tu quali servizi possiamo attivare per analisi, personalizzazione e contenuti esterni.
Utilizziamo cookie e tecnologie simili sul nostro sito web per personalizzare i contenuti, integrare media esterni e comprendere meglio l'utilizzo delle singole sezioni.
Cookie necessari
Queste voci garantiscono funzioni di base come sicurezza, stabilità e gestione dei moduli.
Il trattamento dei dati può avvenire con il tuo consenso o sulla base di interessi legittimi. Nelle impostazioni dei cookie puoi negare il consenso a ciascuna categoria facoltativa o autorizzarla singolarmente.
Alcuni servizi trattano dati personali in Paesi terzi. Con il tuo consenso, accetti anche questo trasferimento. Trovi maggiori informazioni nella nostra informativa sulla privacy.
Potrai riaprire e modificare la tua selezione in qualsiasi momento. · 1.0.2
Configurare uno stack LAMP su un Server VPS Linux – Eseguire applicazioni PHP classiche
Scopri come configurare in modo efficiente uno stack LAMP per ospitare siti web dinamici in PHP su Linux → Scopri di più
10 novembre 20267 min di lettura0 Visualizzazioni0 utile
Introduzione
Lo stack LAMP è una popolare combinazione di software open source installati insieme per consentire di ospitare facilmente siti web dinamici, con particolare attenzione ai siti e alle app in PHP. L'acronimo sta per: Linux come sistema operativo, Apache come server web, MySQL come database e, infine, PHP per l'elaborazione. In questa guida ti mostriamo come configurare uno stack LAMP su un server VPS Linux, con spiegazioni dettagliate passo dopo passo e un esempio di sito web per la gestione delle attività.
FAQ
Domande frequenti
Linux come sistema operativo, Apache come server web, MySQL come database e PHP per l'elaborazione: una combinazione molto diffusa per ospitare siti web dinamici in PHP.
LAMP utilizza Apache come server web, mentre LEMP utilizza Nginx (Engine x). Gli altri componenti (Linux, MySQL e PHP) sono gli stessi.
Esegui il comando 'sudo apt install apache2'. Poi assicurati che la porta 80 (HTTP) sia aperta nel firewall.
Ubuntu. I comandi sono identici su Debian e simili su altre distribuzioni, anche se la sintassi potrebbe variare leggermente.
Feedback
Questo articolo ti è stato utile?
Il tuo feedback ci aiuta a definire le priorità e a migliorare i contenuti.
0 di 0 I feedback hanno giudicato utile questo articolo.
Assistenza personale
Le istruzioni non sono sufficienti?
Il supporto ZAP conosce il tuo prodotto: descrivi brevemente la tua richiesta e ti aiuteremo personalmente.
Navigazione
VPS
Preparazione
Per prima cosa, connettiti al server tramite SSH. Se non sai come fare, consulta la nostra guida Primo accesso (SSH).
In questa guida utilizziamo Ubuntu come distribuzione Linux. I comandi sono identici su Debian e simili su altre distribuzioni, ma la sintassi potrebbe variare leggermente. Assicurati di aver installato un sistema operativo e di essere connesso tramite SSH.
Come sempre, prima dell'installazione aggiorna tutti i pacchetti con il seguente comando:
L'installazione si può suddividere facilmente nei singoli componenti principali dello stack LAMP: prima il server web Apache, poi il database MySQL e infine PHP. Durante l'installazione configureremo un sito web di prova scritto in PHP, che accede al database MySQL. Ogni richiesta web verrà quindi elaborata e servita da Apache.
Configurare Apache
Apache è il server web che gestisce le richieste web in ingresso e invia le risposte. Installalo con il seguente comando:
Code
sudo apt install apache2
Dopo l'installazione, assicurati che siano state impostate le regole firewall appropriate, in modo che il server web sia raggiungibile da Internet. In questo esempio utilizziamo il firewall UFW, perché Apache dispone di un profilo applicativo registrato.
Se utilizzi un altro firewall, assicurati che la porta 80 (HTTP) sia aperta. Per maggiori informazioni sui firewall in Linux, consulta la nostra guida Gestire il firewall.
Attiva il firewall UFW e crea una regola per SSH:
Code
# Regel für SSH erstellen
sudo ufw allow OpenSSH
# UFW Firewall aktivieren
sudo ufw enable
Attenzione
Assicurati che nel firewall UFW sia presente una regola per SSH! Senza questa regola, se perdi la sessione corrente non potrai più connetterti tramite SSH dopo aver attivato il firewall!
Ora crea la regola per Apache e verifica le regole:
Code
# Regel für Apache erstellen
sudo ufw allow in "Apache Full"
# UFW Firewall Status prüfen
sudo ufw status
Suggerimento
Puoi usare ufw app list per visualizzare i profili disponibili. Apache Full significa che sono aperte sia la porta HTTP (80) sia quella HTTPS (443).
Dovresti vedere Apache e Apache (v6) con lo stato ALLOW, a conferma che il firewall è configurato correttamente. Dovrebbero essere visualizzate anche altre regole, ad esempio quella per SSH.
Con il firewall aperto per Apache, puoi verificare che Apache funzioni. Apri nel browser l'indirizzo IP del server: http://[deine_ip_adresse]
Se tutto funziona, dovresti vedere la pagina di benvenuto predefinita. In caso contrario, controlla lo stato con: systemctl status apache2
Configurare MySQL
Ora installa MySQL, che fungerà da database per archiviare i dati in modo relazionale. Installalo con:
Code
sudo apt install mysql-server
Dopo l'installazione, ti consigliamo di eseguire lo script di sicurezza per proteggere il server MySQL. È facoltativo, ma caldamente consigliato. Avvialo con:
Code
sudo mysql_secure_installation
Lo script ti guiderà in modo interattivo nella configurazione. Per prima cosa, ti verrà chiesto di configurare la convalida delle password. Ti consigliamo di scegliere Y per consentire solo password sicure e di selezionare MEDIUM (1) o STRONG (2).
Successivamente, ti verrà chiesto se rimuovere l'utente anonimo e disabilitare l'accesso root dall'esterno. Ti consigliamo di confermare entrambe le opzioni con Y per aumentare la sicurezza.
Infine, ti verrà chiesto se rimuovere il database di test e ricaricare le tabelle dei privilegi. Anche in questo caso, ti consigliamo di scegliere Y.
Verifica che MySQL sia in esecuzione effettuando l'accesso:
Code
sudo mysql -u root
Se visualizzi un messaggio di benvenuto, la procedura è andata a buon fine. Per uscire dalla console MySQL, digita quit.
Configurare PHP
L'ultimo componente LAMP è PHP. L'installazione è semplice:
Code
sudo apt install php libapache2-mod-php php-mysql
Verifica l'installazione con:
Code
php -v
Se viene visualizzato un numero di versione, PHP funziona correttamente.
Suggerimento
Estensioni PHP
In alcuni casi potresti aver bisogno di estensioni PHP aggiuntive. Puoi trovare un elenco con:
Code
apt search php- | less
Usa i tasti freccia per scorrere e Q per uscire. Per installare un'estensione:
Code
sudo apt install [php_extension] [...]
Puoi installare più estensioni contemporaneamente, separandole con uno spazio.
Ti consigliamo di modificare l'ordine degli indici delle directory, in modo che index.php venga caricato prima di .html. Apri il file:
Salva con CTRL + X, conferma con Y e premi ENTER. Riavvia Apache:
Code
sudo systemctl restart apache2
Creare un sito web di prova
Dopo aver installato tutti i componenti LAMP, creeremo un sito web di prova per mostrare come collaborano. È facoltativo, ma utile per capire come realizzare i tuoi siti web.
Creeremo una piccola lista di attività in PHP, che recupera e mostra le voci da un database MySQL. Come dominio di esempio utilizzeremo zapdocs.example.com. Devi creare un record DNS A per il dominio che punti all'indirizzo IP del server. Per assistenza, consulta la nostra guida Record di dominio.
Info
Puoi procedere anche senza un dominio e sostituire [your_domain] con un nome qualsiasi. In questo caso, accederai al sito tramite l'indirizzo IP. Tuttavia, dovrai rimuovere la riga ServerName dal file dell'host virtuale.
Configurare Apache
Di norma, i siti web si trovano nella directory /var/www. Per impostazione predefinita, contiene una directory html con una pagina standard. Se ospiti più siti web, ti consigliamo di creare una directory separata per ciascun dominio.
Crea una directory per il tuo dominio:
Code
sudo mkdir /var/www/[your_domain]
Crea un nuovo file di configurazione dell'host virtuale:
Salva e chiudi con CTRL + X, Y e ENTER. Verifica la sintassi:
Code
sudo apache2ctl configtest
Attiva il nuovo host virtuale:
Code
sudo a2ensite [your_domain]
Info
Se non utilizzi un dominio
Se non utilizzi un dominio, rimuovi o commenta la riga ServerName (usando #) e disattiva l'host predefinito:
Code
sudo a2dissite 000-default
Riavvia Apache:
Code
sudo systemctl restart apache2
Creare il sito web
Al momento la directory è vuota, quindi ora creeremo il sito web per la lista di attività.
Preparare il database
Accedi a MySQL:
Code
sudo mysql -u root
Crea un nuovo database e una tabella:
Code
# Datenbank erstellen
CREATE DATABASE todowebsite;
# Datenbank auswählen
USE todowebsite;
# Tabelle erstellen
CREATE TABLE todoitems (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
is_completed BOOLEAN DEFAULT FALSE,
creation_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Aggiungi alcune voci di esempio:
Code
INSERT INTO todoitems (name, is_completed) VALUES ('Create ZAP-Docs Guide', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Buy a ZAP-Hosting Server', 1);
INSERT INTO todoitems (name, is_completed) VALUES ('Join ZAP-Hosting Discord', 0);
INSERT INTO todoitems (name, is_completed) VALUES ('Have a great day!', 0);
Crea un utente dedicato per il sito web:
Code
# Benutzer erstellen
# Ersetze [your_password] durch dein Passwort
CREATE USER todo@localhost IDENTIFIED BY '[your_password]';
# Rechte vergeben (als ein Befehl kopieren)
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON todowebsite.*
TO todo@localhost;
# Rechte neu laden
FLUSH PRIVILEGES;
Esci dalla console MySQL con quit.
File PHP del sito web
Crea il file PHP per la pagina della lista di attività:
Code
sudo nano /var/www/[your_domain]/index.php
Inserisci il codice seguente. Si connette al database e mostra le voci della lista di attività.
Importante
Sostituisci [your_password] con la password assegnata all'utente todo.
Code
<?php
// MySQL-Verbindung vorbereiten
$servername = "localhost";
$username = "todo";
$password = "[your_password]";
$dbname = "todowebsite";
// Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Verbindung prüfen, bei Fehler abbrechen
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// SQL-Abfrage, um Einträge abzurufen
$sql = "SELECT id, name, is_completed, creation_date FROM todoitems ORDER BY creation_date DESC";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>To-Do Liste</title>
</head>
<body>
<h1>Coole To-Do Liste :D</h1>
<p>Für unseren coolen ZAP-Hosting Guide: <a href="https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack">https://zap-hosting.com/guides/docs/vserver-linux-lamp-stack</a></p>
<ul>
<?php
// Prüfen, ob Ergebnisse vorhanden sind
if ($result->num_rows > 0) {
// Durch alle Einträge iterieren
foreach ($result as $entry) {
echo "<li>";
// Name anzeigen, htmlspecialchars schützt vor XSS
echo htmlspecialchars($entry["name"]);
// Status anzeigen
if ($entry["is_completed"]) {
echo " <strong>(Erledigt)</strong>";
} else {
echo " <strong>(Offen)</strong>";
}
// Erstellungsdatum anzeigen
echo " - Erstellungsdatum: " . htmlspecialchars($entry['creation_date']);
echo "</li>";
}
} else {
// Falls keine Einträge vorhanden sind
echo "<li>Keine To-Do-Einträge gefunden.</li>";
}
?>
</ul>
</body>
</html>
<?php
// Verbindung schließen
$conn->close();
?>
Salva e chiudi con CTRL + X, Y e ENTER.
Testare il sito web
Hai configurato correttamente un sito web di prova per la lista di attività che utilizza tutti i componenti LAMP!
Ora accedi tramite il dominio (HTTP/porta 80) che hai definito nell'host virtuale, ad esempio zapdocs.example.com. Il risultato dovrebbe essere simile a questo:
Conclusione
Congratulazioni, hai installato e configurato correttamente lo stack LAMP! Come passo successivo, ti consigliamo vivamente di configurare un dominio e un certificato SSL, in modo che il tuo sito web sia accessibile in sicurezza. Consulta la nostra guida Configurare Certbot, incentrata sul plugin Apache, e segui la procedura interattiva per ottenere rapidamente un certificato per il tuo dominio.
Il nostro team di supporto è a tua disposizione ogni giorno per qualsiasi domanda o problema! 🙂
Hosting server da 2,49 € / mese, subito online, protezione DDoS inclusa.