1 15/10/2026 7 min

Se devi provare WordPress in locale su Ubuntu con XAMPP, la strada più rapida è semplice: installi lo stack, prepari il database, copi i file di WordPress nella document root e verifichi che Apache, PHP e MySQL/MariaDB parlino tra loro senza attriti. Il punto non è solo “farlo partire”, ma farlo partire in modo ripetibile, con permessi corretti e con un setup che non ti costringa a rincorrere errori banali dopo il primo refresh del browser.

Qui sotto trovi una procedura lineare, adatta a Ubuntu recente. L’obiettivo è avere un’installazione WordPress funzionante sotto XAMPP, accessibile in locale, con un database dedicato e una configurazione minima ma pulita. Dove serve, aggiungo anche i controlli per capire subito se il problema è nel layer sbagliato: filesystem, PHP, Apache o database.

1. Verifica il contesto e scegli il punto di installazione

XAMPP su Linux installa di solito tutto sotto /opt/lampp. La document root standard è /opt/lampp/htdocs. Se vuoi tenere WordPress in una sottocartella, puoi creare una directory dedicata; se preferisci un virtual host, puoi farlo, ma per una prima installazione locale la sottocartella è la scelta meno fragile.

Prima di toccare i file, controlla che XAMPP sia attivo:

sudo /opt/lampp/lampp status

Atteso: Apache e MySQL in esecuzione. Se uno dei due è fermo, non andare avanti finché non hai chiarito il motivo.

Se il servizio non parte, il primo controllo utile è il log di XAMPP:

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

Un errore di porta occupata o un problema di permessi emerge quasi sempre qui prima che altrove.

2. Installa XAMPP su Ubuntu e verifica i moduli necessari

Se XAMPP non è ancora installato, scarica il pacchetto ufficiale dal sito di Apache Friends e rendilo eseguibile. In ambienti di test è una via rapida; in produzione vera, la scelta va valutata con più attenzione perché XAMPP non è pensato come piattaforma hardened da esposizione Internet.

Esempio di installazione:

chmod +x xampp-linux-x64-*.run
sudo ./xampp-linux-x64-*.run

Finita l’installazione, avvia lo stack:

sudo /opt/lampp/lampp start

Verifica che Apache risponda in locale:

curl -I http://localhost/

Atteso: HTTP/1.1 200 OK o comunque una risposta valida dalla pagina di benvenuto di XAMPP. Se ottieni Connection refused, il problema è Apache o la porta. Se ottieni una risposta ma il browser non mostra nulla, il problema è altrove: cache, host, o una configurazione errata del sito.

3. Scarica WordPress e posizionalo nella document root

Scarica l’archivio ufficiale di WordPress e scompattalo. Per un’installazione pulita, evita di lavorare direttamente nella root di htdocs; crea una directory dedicata, ad esempio wordpress.

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mv wordpress /opt/lampp/htdocs/wordpress

Adesso apri nel browser http://localhost/wordpress. Se compare l’installer di WordPress, il layer web è già sano. Se vedi directory listing, pagina bianca o errore 403, il problema è nei permessi o nella configurazione di Apache.

Controlla la proprietà dei file. Su Ubuntu, XAMPP gira spesso con utente e gruppo legati al web server locale, ma la combinazione precisa può variare. Per evitare attriti in locale, una pratica semplice è assegnare i file a un utente che gestisci tu e garantire lettura ad Apache. In un ambiente monoutente di test, puoi usare il tuo utente per la directory e verificare che il processo web possa leggerla.

sudo chown -R $USER:$USER /opt/lampp/htdocs/wordpress
find /opt/lampp/htdocs/wordpress -type d -exec chmod 755 {} \\;
find /opt/lampp/htdocs/wordpress -type f -exec chmod 644 {} \\;

Se vuoi una soluzione più rigorosa, il punto non è “aprire tutto”, ma capire quale utente legge i file e dare il minimo necessario. Se non hai certezza, verifica il processo Apache con:

ps aux | grep httpd

Il nome del processo e l’utente effettivo ti dicono subito se i permessi sono coerenti con la directory scelta.

4. Crea il database per WordPress con phpMyAdmin o da CLI

WordPress ha bisogno di un database dedicato e di un utente con privilegi limitati su quel database. In locale puoi farlo da phpMyAdmin, che XAMPP espone di default, oppure da shell. Da amministratore di sistema, la CLI resta il metodo più veloce e ripetibile.

Da terminale:

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

Se la tua installazione XAMPP usa una password per root, aggiungila nel comando. Una volta dentro MySQL/MariaDB, crea database e utente:

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'una_password_forte';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;

Qui il punto importante è utf8mb4: evita problemi su emoji, caratteri estesi e contenuti multilingua. Se crei il database con un charset vecchio, il problema emerge spesso dopo, quando non ti aspetti più di doverlo toccare.

Se preferisci phpMyAdmin, il percorso è in genere http://localhost/phpmyadmin. Da lì puoi creare database e utente, ma ricordati di non lasciare account amministrativi inutili attivi più del necessario, anche in locale. Abitudine utile: meno privilegi, meno sorprese.

5. Configura wp-config.php con i parametri corretti

Nella cartella di WordPress, rinomina il file di esempio e inserisci i dati del database.

cd /opt/lampp/htdocs/wordpress
cp wp-config-sample.php wp-config.php

Modifica questi valori:

define( 'DB_NAME', 'wordpress_db' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'una_password_forte' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

Se il database è locale dentro XAMPP, localhost va bene nella quasi totalità dei casi. Se hai cambiato porta o socket, il problema non è WordPress ma il livello MySQL di XAMPP: in quel caso conviene verificare prima che il database risponda con un client nativo.

Puoi anche aggiungere le chiavi di sicurezza generate da WordPress, sostituendo le stringhe di esempio con valori reali presi dal servizio ufficiale. Non inventarle a mano. Se devi rigenerarle, fallo con il generatore ufficiale e conserva il file solo localmente.

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Incolla l’output nel blocco dedicato di wp-config.php. Se stai lavorando su una macchina condivisa, evita di lasciare il file con permessi troppo larghi.

6. Avvia l’installer di WordPress e completa la procedura web

A questo punto apri http://localhost/wordpress. Se il database è raggiungibile e i file sono leggibili, WordPress mostra l’installer iniziale. Qui scegli lingua, titolo del sito, utente amministratore e password.

Attenzione a un errore molto comune: usare password banali perché “tanto è solo locale”. È un’abitudine che poi si trascina nei test, nei demo environment e negli screenshot condivisi. Anche in locale conviene usare credenziali sensate e, se necessario, salvarle in un password manager.

Una volta completata l’installazione, accedi a /wp-admin e verifica che il backend si apra senza errori PHP o redirect anomali. Se il login fallisce o il backend va in loop, controlla prima i cookie e la URL del sito, poi il file wp-config.php.

7. Regola URL, permessi e comportamento dei permalink

Dopo il primo accesso, vai in Impostazioni e controlla che URL del sito e URL WordPress siano coerenti con il percorso reale. Se hai installato in /wordpress, non forzare il root del dominio a meno di aver configurato virtual host o rewrite dedicati.

Per testare i permalink, salva una struttura diversa da quella predefinita. Se il rewrite non funziona, il problema di solito è Apache o mod_rewrite. In XAMPP, il modulo è spesso disponibile, ma non sempre attivo o consentito dal file di configurazione.

Puoi verificare che Apache stia leggendo il file di configurazione giusto con:

sudo grep -n