1 25/04/2026 9 min

Su Ubuntu 19.04 XAMPP si installa senza passare dai repository di sistema: si scarica il pacchetto ufficiale, si rende eseguibile l’installer e si avvia lo stack da terminale. La parte delicata non è l’installazione in sé, ma il contesto: una release Ubuntu non LTS ha un ciclo breve, quindi conviene sapere subito cosa stai facendo, dove finisce il software e come riportarlo indietro se serve.

La scelta di XAMPP ha senso quando vuoi un ambiente rapido per test locali con Apache, MariaDB/MySQL e PHP già allineati tra loro. Non è la strada migliore per un server esposto in produzione, ma per sviluppo, laboratorio e demo è spesso il modo più veloce per partire. Qui l’obiettivo è arrivare a un’installazione pulita, avvio verificato e controllo minimo dei servizi.

1. Prima di installare: verifica il sistema e libera il campo

Prima di lanciare l’installer, controlla architettura e spazio disco. XAMPP per Linux è distribuito come binario x86_64 nella maggior parte dei casi, e Ubuntu 19.04 è una release ormai datata: se la macchina è aggiornata in modo incompleto o ha pacchetti rotti, conviene accorgersene subito.

Usa questi comandi per confermare ambiente e spazio disponibile:

uname -m
lsb_release -a
df -h /opt /tmp

Atteso: architettura x86_64, Ubuntu 19.04 identificata correttamente e almeno qualche gigabyte libero su /opt o sulla partizione che ospiterà l’installazione. Se lo spazio è stretto, il rischio non è solo l’installer che fallisce: anche i log e i database locali possono saturare il filesystem in pochi giorni.

Se hai già Apache, MySQL o MariaDB installati dal sistema, non è un errore, ma crea ambiguità sulle porte e sui servizi in ascolto. XAMPP porta con sé i propri demoni e di solito lavora su /opt/lampp; il punto è evitare di confondere i binari di sistema con quelli del bundle.

2. Scaricare XAMPP dal sito ufficiale e preparare l’installer

Scarica il pacchetto Linux direttamente dalla pagina ufficiale di Apache Friends. Evita mirror casuali: qui il tema non è la comodità, ma la fiducia nella sorgente del binario. Una volta ottenuto il file .run, rendilo eseguibile.

cd ~/Scaricati
chmod +x xampp-linux-x64-*.run

Se vuoi controllare cosa hai scaricato prima di eseguire il file, verifica nome e dimensione. Un controllo minimo è banale ma utile:

ls -lh xampp-linux-x64-*.run
file xampp-linux-x64-*.run

Atteso: il file risulta un eseguibile ELF a 64 bit o comunque un installer autoestraente coerente con la release Linux. Se il nome non corrisponde o la dimensione è anomala, fermati e riscarica il pacchetto.

3. Installazione da terminale con privilegi amministrativi

L’installer grafico di XAMPP può partire anche da desktop, ma da terminale hai più controllo sugli errori e sui messaggi iniziali. Su Ubuntu 19.04 la via più lineare è eseguire il file con sudo.

sudo ./xampp-linux-x64-*.run

Durante la procedura, il pacchetto viene installato in genere in /opt/lampp. Se il sistema blocca l’esecuzione per policy o permessi, il problema non è XAMPP ma il contesto locale: controlla che il file sia realmente eseguibile e che il filesystem non sia montato con opzioni restrittive.

Se vuoi una verifica post-installazione, controlla che la directory esista e contenga i binari attesi:

ls -la /opt/lampp
ls -la /opt/lampp/bin

Atteso: directory presenti, file come apachectl, php, mysql e script di gestione. Se /opt/lampp non compare, l’installazione non è andata a buon fine oppure non è stata completata con privilegi sufficienti.

4. Avviare XAMPP e capire cosa sta ascoltando

Per avviare lo stack, usa lo script di controllo fornito dal bundle. Questo è il punto in cui molti si fermano a guardare la pagina iniziale, ma il controllo serio è verificare i processi e le porte in ascolto.

sudo /opt/lampp/lampp start

Il comando avvia in genere Apache, MySQL/MariaDB e FTP se presente. L’output atteso mostra i servizi effettivamente partiti. Se uno dei componenti fallisce, il messaggio iniziale è già una pista: porta occupata, file di configurazione errato, permessi o dipendenze mancanti.

Controlla lo stato con lo script di gestione o con gli strumenti di sistema:

sudo /opt/lampp/lampp status
sudo ss -ltnp | grep -E ':(80|443|3306)\b'

Atteso: Apache in ascolto su :80 e, se TLS è configurato, su :443; MySQL/MariaDB su :3306. Se la porta 80 è già occupata da Apache di sistema o da Nginx, XAMPP può partire solo parzialmente oppure fallire con errore di bind.

5. Verificare il servizio dal browser e dalla shell

La verifica minima non è aprire la home del pannello e basta. Devi controllare sia la risposta HTTP sia la coerenza dei processi. Una risposta sana da localhost ti dice che il web server è vivo, ma non ancora che PHP e database siano integri.

curl -I http://127.0.0.1/

Atteso: codice 200 OK o una redirezione coerente con la dashboard di XAMPP. Se ricevi Connection refused, il demone non ascolta sulla porta prevista. Se ricevi 403 o una pagina non attesa, la configurazione Apache è attiva ma il virtual host o il document root non sono quelli che pensavi.

Per verificare la pagina di stato del bundle, apri http://localhost/dashboard/ o http://127.0.0.1/dashboard/. Se il browser mostra errore DNS o connessione, il problema è prima di Apache: rete locale, bind errato o processo non avviato.

6. Primo avvio pulito: controlli su Apache, PHP e database

Una volta partito lo stack, conviene testare i tre blocchi principali separatamente. Questo evita la classica situazione in cui “la pagina si vede” ma poi il PHP non esegue o il database non risponde.

Controlla la versione di PHP inclusa nel bundle:

/opt/lampp/bin/php -v

Atteso: una versione PHP coerente con il pacchetto XAMPP scaricato. Se l’output non compare o il binario non si esegue, c’è un problema di installazione oppure di librerie mancanti nel sistema.

Per il database, il controllo minimo è l’accesso al client incluso:

/opt/lampp/bin/mysql -u root -p

In molte installazioni iniziali la password root del database può essere vuota o gestita dal pannello, ma non dare per scontato nulla: verifica il comportamento reale, poi imposta credenziali solide se il laboratorio viene usato oltre il test locale.

7. Avvio automatico all’accesso: attenzione a systemd e alla semplicità finta

XAMPP non si integra come un servizio di sistema classico con systemd in modo nativo e pulito come un pacchetto Ubuntu. Se vuoi l’avvio automatico, hai due strade: uno script in rc.local-style o una unit custom. La seconda è più ordinata, ma aumenta la responsabilità operativa: devi gestire stop, restart e logging con criterio.

Per un uso locale, spesso basta un alias o uno script richiamato manualmente. Se invece vuoi un avvio automatico ad accesso utente, puoi creare un piccolo wrapper. Esempio semplice:

#!/bin/bash
sudo /opt/lampp/lampp start

Salvalo ad esempio come ~/bin/start-xampp.sh, rendilo eseguibile e richiamalo quando serve. È una soluzione povera ma trasparente. Se vuoi qualcosa di più robusto, crea una unit systemd dedicata, ma solo se sai già come gestire i privilegi e il motivo per cui il processo deve restare sotto controllo del sistema.

8. Gestire i conflitti più comuni su Ubuntu 19.04

Il problema più frequente non è l’installer, ma il conflitto di porte. Ubuntu può avere già Apache o MariaDB installati dai repository, e XAMPP prova a fare la stessa cosa nella sua cartella. Se trovi un errore del tipo “port 80 in use”, non forzare a caso: identifica chi occupa la porta.

sudo ss -ltnp | grep ':80\b'
sudo ss -ltnp | grep ':3306\b'

Se il responsabile è il servizio di sistema, puoi fermarlo temporaneamente per il test:

sudo systemctl stop apache2
sudo systemctl stop mysql

Questo è reversibile, ma ha blast radius locale: interrompe i servizi di sistema che usano quelle porte. Il rollback è immediato con sudo systemctl start apache2 e sudo systemctl start mysql se li avevi già attivi prima del test.

Un altro punto da controllare è il firewall locale, anche se su un desktop di laboratorio spesso non è il colpevole. Se hai regole attive, verifica che non stiano bloccando l’accesso alla porta HTTP:

sudo ufw status verbose

Per uso solo locale, il problema di solito non si presenta. Ma se stai testando da un altro host della LAN, una policy restrittiva può farti inseguire un falso guasto applicativo quando in realtà è solo un blocco di rete.

9. Dove guardare quando qualcosa non parte

Se /opt/lampp/lampp start fallisce, non saltare subito a reinstallare. I primi log da leggere sono quelli di Apache e del database. La posizione esatta può variare, ma in XAMPP i riferimenti utili stanno tipicamente sotto /opt/lampp/logs/.

sudo tail -n 50 /opt/lampp/logs/error_log
sudo tail -n 50 /opt/lampp/logs/mysql_error_log

Atteso: nessun errore di binding, nessun crash ripetuto, nessun messaggio di permessi negati su file di configurazione o directory dati. Se trovi riferimenti a socket mancanti, porte già in uso o file corrotti, hai già il punto su cui intervenire.

Se invece il problema è una pagina bianca in PHP, testa un file minimale nel document root di XAMPP. Crea ad esempio /opt/lampp/htdocs/info.php con contenuto:

<?php phpinfo();

Poi apri http://127.0.0.1/info.php. Se il file viene interpretato, la pipeline PHP è attiva. Se viene scaricato o mostrato come testo, Apache non sta passando i file a PHP oppure la configurazione del modulo non è quella prevista.

10. Stop, restart e disinstallazione pulita

Per fermare XAMPP usa sempre lo script del bundle, non killare processi a mano se non sei in emergenza. Il comando standard è questo:

sudo /opt/lampp/lampp stop

Per riavviare dopo una modifica:

sudo /opt/lampp/lampp restart

Se devi rimuovere XAMPP, la disinstallazione dipende dal pacchetto e dalla versione. In genere c’è uno script di uninstall o si procede eliminando /opt/lampp dopo aver fermato i servizi. Qui il rischio è ovvio: cancellazione irreversibile dei dati del bundle. Prima di farlo, esporta database e backup dei file web se contengono lavoro utile.

Un controllo finale utile prima di chiudere il lavoro è verificare che nessun processo del bundle sia rimasto attivo:

ps aux | grep -i lampp | grep -v grep

Atteso: nessun demone XAMPP in esecuzione dopo lo stop. Se qualcosa resta appeso, hai un problema di chiusura pulita che va indagato prima di considerare il sistema stabile.

11. Scelta pratica: quando XAMPP ha senso e quando no

Su Ubuntu 19.04 XAMPP è comodo quando vuoi ricreare in fretta un ambiente LAMP senza passare da configurazioni separate. È utile per test locali, prove di compatibilità PHP e piccoli ambienti di sviluppo in cui la velocità conta più dell’integrazione con il sistema.

Non è invece la scelta giusta se vuoi un server gestito secondo le pratiche classiche Linux, con servizi di sistema, aggiornamenti controllati e separazione rigorosa dei componenti. In quel caso conviene installare Apache, PHP e database dai repository e gestirli con i tool nativi della distribuzione.

In pratica: XAMPP ti fa risparmiare tempo all’inizio, ma ti chiede disciplina nel non confonderlo con lo stack di sistema. Se tieni chiara questa differenza, l’installazione su Ubuntu 19.04 da terminale resta una procedura semplice, veloce e abbastanza prevedibile.