Sviluppare un sito web in locale su Linux con WordPress

Sviluppare un sito web in locale è uno dei passaggi più importanti per chiunque voglia creare un progetto professionale senza correre rischi. Far girare WordPress direttamente sul proprio computer con Linux consente di lavorare in tranquillità, sperimentare, provare diversi temi e plugin, fare errori senza compromettere nulla e preparare il sito per la pubblicazione online.

In questa guida completa esploreremo tutti gli aspetti fondamentali: dalle operazioni preliminari per scegliere la giusta versione di Apache e PHP fino alle problematiche più comuni che possono insorgere, dai consigli SEO per progettare correttamente un sito WordPress fin dall’ambiente di sviluppo, fino alle strategie per eseguire backup e migrazioni in modo sicuro. Infine chiuderemo con una sezione FAQ che raccoglie le domande più frequenti. Il tutto sarà spiegato con un approccio discorsivo e ricco di esempi pratici, così che anche chi è alle prime armi possa seguire senza difficoltà.

Indice degli argomenti

Introduzione allo sviluppo locale su Linux

Quando si parla di sviluppo locale, l’idea principale è quella di avere un ambiente di test sul proprio computer che rispecchi il più possibile quello che troveremo in produzione sul server remoto. Questo approccio ha diversi vantaggi: non richiede una connessione Internet costante, permette di fare esperimenti senza il rischio di danneggiare un sito già online e garantisce la possibilità di lavorare più rapidamente grazie a tempi di caricamento immediati. Linux, con la sua stabilità e facilità d’uso, è una delle distribuzioni più adatte a ospitare un server locale.

A differenza di Windows, che spesso richiede pacchetti come XAMPP o WampServer, su Linux possiamo installare direttamente Apache, PHP e MariaDB utilizzando il gestore pacchetti apt. Questo ci dà maggiore controllo, perché possiamo decidere quali versioni utilizzare e come configurarle in modo che siano compatibili con il server di produzione. In questo modo riduciamo i rischi di differenze tra l’ambiente locale e quello online. Inoltre, lavorare su Linux offre il vantaggio di avere a disposizione tutti gli strumenti tipici del mondo open source, senza restrizioni e senza costi di licenza.

Operazioni preliminari: scegliere Apache e PHP

Prima di iniziare con l’installazione, è fondamentale fare una riflessione preliminare: quale versione di Apache e quale versione di PHP supporta il nostro server di hosting? Non sempre l’ultima versione di PHP è la scelta migliore. Ad esempio, se il nostro provider supporta PHP 8.1 o 8.2, installare in locale PHP 8.4 potrebbe portarci a sviluppare funzionalità o usare plugin che non saranno compatibili online. Per questo motivo, la prima cosa da fare è verificare sul pannello del nostro hosting (oppure chiedere al supporto tecnico) quale versione di PHP viene messa a disposizione.

Allo stesso modo, Apache è quasi sempre presente come server web, ma in alcuni casi il provider può utilizzare Nginx o combinazioni particolari con PHP-FPM. Per allinearci il più possibile, conviene quindi scegliere Apache con PHP-FPM e la stessa versione di PHP che avremo online. Questo ci evita problemi quando trasferiremo il sito. Un errore comune è sottovalutare questi aspetti e installare la versione più recente solo perché disponibile: meglio partire da una base identica al server remoto. Una volta chiarito questo punto, possiamo passare all’installazione dei pacchetti di base.

Installazione degli strumenti necessari

Su Linux possiamo installare il cosiddetto stack LAMP (Linux, Apache, MariaDB, PHP) con un unico comando. Tuttavia, conviene farlo in modo ragionato. Supponiamo di aver deciso di utilizzare PHP 8.2 perché è quello supportato dal nostro provider: allora dobbiamo prima verificare se il pacchetto corrispondente è disponibile nei repository o se occorre aggiungere un PPA specifico. Una volta chiarito questo, il comando tipico è: sudo apt install apache2 mariadb-server php8.2 libapache2-mod-php8.2 php8.2-mysql unzip -y. Questo ci fornisce subito il web server, il database e il linguaggio di scripting. Dopo l’installazione, è bene testare che Apache stia girando aprendo il browser e digitando http://localhost. Se appare la pagina di benvenuto di Apache, significa che tutto è andato bene. Analogamente, possiamo verificare che MariaDB sia attivo con sudo systemctl status mariadb. Una volta che i servizi sono operativi, possiamo passare alla configurazione.

Configurazione di Apache, PHP e database

La configurazione è la fase più delicata. Per Apache, il file principale dei VirtualHost si trova in /etc/apache2/sites-available. Conviene creare un file dedicato per ogni sito, ad esempio ilmiositoweb.local.conf, così da mantenere ordine. All’interno di questo file definiamo sia il VirtualHost sulla porta 80 sia quello sulla porta 443, se vogliamo usare HTTPS. Un esempio di configurazione minima è il seguente:

<VirtualHost *:80>
    ServerName ilmiositoweb.local
    DocumentRoot /var/www/ilmiositoweb
    <Directory /var/www/ilmiositoweb>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Dopo aver creato il file, occorre abilitare il sito con

sudo a2ensite ilmiositoweb.local.conf

e ricaricare Apache.

Per il database, conviene creare un utente dedicato e non utilizzare root. Accedendo a MariaDB con

sudo mysql -u root

possiamo eseguire:

CREATE DATABASE ilmiositodb;

CREATE USER 'ilmiositouser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON ilmiositodb.* TO 'ilmiositouser'@'localhost';

Questo ci mette subito in sicurezza e prepara il terreno per WordPress. Infine, controlliamo la configurazione di PHP modificando il file php.ini, ad esempio aumentando il limite di upload o la memoria disponibile. Questo ci sarà utile soprattutto quando installeremo temi e plugin più pesanti.

Modifica del file hosts

Per permettere al sistema di riconoscere il dominio locale, dobbiamo modificare il file /etc/hosts. Apri il terminale e digita:

sudo nano /etc/hosts

All’interno del file, aggiungi la seguente riga:

127.0.0.1   ilmiositoweb.local

Salva e chiudi il file. In questo modo il browser saprà che ilmiositoweb.local punta al tuo computer locale. Questo passaggio è fondamentale: senza di esso, digitando il dominio nel browser non accederesti al sito locale.

Installazione e configurazione di WordPress

A questo punto possiamo scaricare WordPress dal sito ufficiale, estrarre i file e copiarli nella cartella /var/www/ilmiositoweb. I permessi devono essere impostati correttamente: il proprietario può essere www-data per consentire ad Apache di scrivere quando necessario. Una volta fatto, aprendo http://ilmiositoweb.local dovremmo vedere la schermata di installazione guidata. Qui inseriamo i dati del database che abbiamo creato e procediamo con la configurazione. WordPress creerà automaticamente le tabelle e ci chiederà di impostare un nome utente e una password per accedere al pannello di amministrazione.

Da questo momento in poi avremo un sito WordPress funzionante in locale, pronto per essere personalizzato. Conviene anche installare subito un tema child, ad esempio Blocksy Child, per evitare di perdere modifiche quando il tema principale viene aggiornato. In più possiamo già configurare plugin utili come un editor di blocchi avanzato o strumenti di sicurezza.

Gestione di più siti in locale

Un aspetto importante dello sviluppo in locale è la possibilità di gestire più siti contemporaneamente. Questo è molto utile se vogliamo lavorare su diversi progetti o se vogliamo testare ambienti separati. La strategia migliore è creare un VirtualHost e una cartella distinta per ogni sito. Ad esempio possiamo avere /var/www/ilmiositoweb e /var/www/provasito, ciascuno con il proprio database e con la propria configurazione Apache. Per differenziare gli indirizzi, utilizziamo domini locali diversi come ilmiositoweb.local e provasito.local. In questo modo possiamo passare da un sito all’altro semplicemente digitando l’URL nel browser. È anche possibile configurare WordPress in modalità multisite, ma in genere conviene tenerli separati per maggiore chiarezza. Per aggiungere un nuovo sito basta ripetere la procedura: creare la cartella, impostare il database e configurare un VirtualHost dedicato.

Supporto HTTPS con certificati self-signed

Molti plugin di WordPress e alcune funzioni richiedono HTTPS per funzionare correttamente, quindi è utile attivare HTTPS anche in locale. Per farlo, generiamo un certificato self-signed con OpenSSL, che ci permette di avere un ambiente realistico senza dover acquistare un certificato valido.

Ecco i passaggi dettagliati:

  1. Generiamo il certificato e la chiave privata con il comando:
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/ilmiositoweb.local.key \
    -out /etc/ssl/certs/ilmiositoweb.local.crt

    Durante la procedura verranno chiesti alcuni dati, ma l’unico campo davvero importante è Common Name (CN), che deve corrispondere al dominio locale: ilmiositoweb.local.

  2. Creiamo o modifichiamo il file del VirtualHost HTTPS di Apache, ad esempio /etc/apache2/sites-available/ilmiositoweb.local-le-ssl.conf, aggiungendo le direttive:
    <VirtualHost *:443>
        ServerName ilmiositoweb.local
        DocumentRoot /var/www/ilmiositoweb
    
        <Directory /var/www/ilmiositoweb>
            AllowOverride All
            Require all granted
        </Directory>
    
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ilmiositoweb.local.crt
        SSLCertificateKeyFile /etc/ssl/private/ilmiositoweb.local.key
    
        ErrorLog ${APACHE_LOG_DIR}/ilmiositoweb-ssl-error.log
        CustomLog ${APACHE_LOG_DIR}/ilmiositoweb-ssl-access.log combined
    </VirtualHost>
  3. Abilitiamo il modulo SSL di Apache e il sito HTTPS:
    sudo a2enmod ssl
    sudo a2ensite ilmiositoweb.local-le-ssl.conf
    sudo systemctl restart apache2
  4. Verifichiamo che il sito sia accessibile tramite https://ilmiositoweb.local. Il browser mostrerà un avviso perché il certificato non è firmato da una CA riconosciuta, ma questo è normale in locale. Possiamo procedere comunque cliccando su “Avanzate” e poi “Procedi al sito” per testare tutte le funzionalità HTTPS.

Seguendo questi passaggi, avremo un ambiente locale con HTTPS funzionante, pronto per testare plugin e funzionalità che richiedono un certificato sicuro senza incidere sul server di produzione.

Sviluppare con Gutenberg e temi child

Una volta che WordPress è attivo, possiamo iniziare a sviluppare. Il consiglio è di utilizzare Gutenberg, l’editor a blocchi nativo, che produce codice leggero e si integra perfettamente con i temi moderni come Blocksy. Elementor e altri page builder sono potenti, ma spesso generano molto codice extra che appesantisce il sito. Se vogliamo un sito performante e ben ottimizzato per la SEO, Gutenberg è una scelta più indicata.

Creare un tema child ci permette di personalizzare l’aspetto grafico senza toccare il tema principale, in modo da non perdere le modifiche durante gli aggiornamenti. Possiamo anche importare preset di Blocksy che ci danno una base grafica già pronta, risparmiando tempo. Lavorare in locale consente di testare ogni modifica prima di andare online.

Consigli SEO per siti WordPress in locale

Molti pensano che la SEO sia una questione da affrontare solo quando il sito è online, ma in realtà è utile partire subito con le basi. Ad esempio, conviene installare un plugin SEO come Rank Math o Yoast già in ambiente locale, così possiamo impostare correttamente i titoli, le descrizioni e la struttura delle URL fin dall’inizio. È importante anche abituarsi a scrivere contenuti ben organizzati, con intestazioni gerarchiche (h1, h2, h3) e con una buona densità di parole chiave. Un buon approccio è pianificare gli articoli e le pagine come se il sito fosse già pubblico, verificando che i meta dati siano coerenti e che la struttura dei link interni sia logica.

Quando lavoriamo in locale, possiamo anche simulare le performance con strumenti come Lighthouse di Chrome, che ci danno indicazioni su velocità, accessibilità e buone pratiche. Un altro aspetto rilevante è la gestione delle immagini: conviene ridimensionarle e comprimerle già in fase di sviluppo, in modo da non dover rifare il lavoro una volta online. In generale, curare la SEO fin dall’ambiente locale significa ridurre i problemi in produzione e preparare il sito per scalare più facilmente in futuro.

Confronto MariaDB vs MySQL

Uno dei punti spesso discussi è se utilizzare MariaDB o MySQL. Entrambi sono database relazionali compatibili tra loro, ma ci sono differenze. MySQL è sviluppato da Oracle, mentre MariaDB è un fork creato dalla comunità open source. Su Linux, MariaDB è spesso la scelta predefinita, perché totalmente open source e con buone performance. In termini pratici, per un sito WordPress non c’è grande differenza: entrambi funzionano bene e i comandi principali sono identici. MariaDB è però considerato più innovativo, con funzionalità aggiuntive e un miglior supporto dalla comunità.

Se online useremo MySQL, conviene installare MySQL anche in locale; se useremo MariaDB, restiamo con MariaDB. Questo riduce il rischio di incompatibilità. In ogni caso, WordPress supporta entrambi senza problemi significativi, quindi la scelta può basarsi anche sulla preferenza personale o sulla facilità di gestione nel proprio ambiente Linux.

Backup e migrazione del sito

Arriviamo a un aspetto cruciale: il backup e la migrazione. Quando lavoriamo in locale, vogliamo essere sicuri di poter trasferire il sito online senza difficoltà. Esistono due approcci principali: manuale e tramite plugin. Nel metodo manuale, effettuiamo un dump del database con mysqldump -u utente -p ilmiositodb > backup.sql, copiamo i file di WordPress e li carichiamo sul server remoto. Poi importiamo il database e aggiorniamo le impostazioni di WordPress (wp-config.php e le opzioni siteurl e home). Questo metodo richiede attenzione, soprattutto per sostituire tutti gli URL da ilmiositoweb.local al dominio reale.

In alternativa, possiamo usare plugin come Duplicator o All-in-One WP Migration, che semplificano enormemente la procedura: creano un pacchetto con file e database e lo ricostruiscono sul server di destinazione. Il vantaggio è che non dobbiamo modificare manualmente gli URL e il rischio di errori si riduce. In ogni caso, è fondamentale eseguire backup regolari anche in locale, così da poter recuperare rapidamente lo stato precedente in caso di problemi o esperimenti non riusciti.

Problemi comuni e soluzioni pratiche

Durante l’installazione e lo sviluppo locale, possono sorgere diversi problemi. Apache potrebbe non avviarsi se c’è un conflitto di porte: in quel caso dobbiamo verificare che la porta 80 non sia occupata da altri servizi. Un altro problema frequente riguarda i permessi dei file: se WordPress non riesce a scrivere nella cartella wp-content, probabilmente i permessi o il proprietario non sono impostati correttamente.

I certificati self-signed possono generare avvisi nei browser, ma questo non impedisce di testare HTTPS in locale. La compatibilità dei plugin è un’altra fonte di problemi: se usiamo una versione di PHP troppo recente, alcuni plugin potrebbero non funzionare. Infine, dimenticare di aggiornare il file hosts per associare ilmiositoweb.local a 127.0.0.1 può impedire l’accesso al sito. Tutti questi problemi hanno soluzioni semplici una volta identificata la causa.

FAQ – Domande Frequenti

Devo sempre usare la stessa versione di PHP del server online?

Non è obbligatorio, ma altamente consigliato. Se in locale utilizzi una versione diversa di PHP, potresti trovarti con plugin che funzionano a casa ma non sul server, o viceversa. Per evitare sorprese, verifica la versione esatta supportata dal tuo hosting e allinea l’ambiente di sviluppo locale di conseguenza.

Meglio MariaDB o MySQL per WordPress?

WordPress funziona con entrambi senza problemi. MariaDB è oggi più diffuso nei server moderni, soprattutto in hosting Linux, ed è completamente compatibile. In termini di prestazioni, le differenze sono minime per siti di piccole e medie dimensioni. Per progetti più grandi, MariaDB può gestire meglio alcune query complesse.

Posso sviluppare più siti in parallelo in locale?

Sì, basta configurare più VirtualHost su Apache (uno per dominio locale). Ad esempio ilmiositoweb.local, secondosito.local, progettotest.local. Ognuno avrà la propria cartella e il proprio database.

Come posso gestire i certificati SSL in locale?

I certificati self-signed sono sufficienti per test in locale. Per il sito online, userai certificati validi come quelli gratuiti di Let’s Encrypt.

È possibile copiare un sito WordPress già online e importarlo in locale?

Sì, tramite plugin come Duplicator, All-in-One WP Migration o manualmente con dump del database e copia dei file. Poi aggiorni wp-config.php e gli URL per il dominio locale.

WordPress in locale sarà veloce come sul server?

In genere sì, spesso più veloce perché non c’è latenza di rete. Tuttavia, plugin attivi o risorse del computer possono influire. Usa strumenti come PageSpeed Insights per testare la versione online.

Come posso condividere il sito in locale con altre persone?

Puoi usare ngrok o LocalTunnel per creare un tunnel temporaneo. In alternativa, configura un server accessibile dall’esterno, facendo attenzione alla sicurezza.

Posso aggiornare WordPress e i plugin in locale senza rischi?

Sì. Questo è uno dei vantaggi principali dello sviluppo locale: puoi testare aggiornamenti senza influenzare il sito online.

Quali errori comuni dovrei evitare?

  • Dimenticare di allineare la versione di PHP con quella del server online.
  • Non configurare correttamente i permessi delle cartelle in /var/www/.
  • Dimenticare di aggiornare i riferimenti al dominio locale nel database.
  • Non impostare backup regolari del database e dei file.
  • Ignorare i log di Apache e PHP quando qualcosa non funziona.

Posso usare Docker al posto di Apache e MariaDB installati a mano?

Sì, Docker consente un ambiente isolato e replicabile, simile a quello del server online, con container separati per Apache, PHP-FPM e MariaDB.

Il lavoro fatto in locale si trasferisce sempre senza problemi online?

Quasi sempre sì, ma potrebbero esserci differenze legate a configurazioni, cache o permessi. È buona norma testare sempre il sito dopo la migrazione.

Conclusioni

Sviluppare un sito WordPress in locale su Linux è una scelta strategica che permette di risparmiare tempo, sperimentare in sicurezza e preparare il terreno a un progetto online solido. Grazie ad Apache, PHP, MariaDB e un po’ di configurazione manuale, puoi ricreare sul tuo computer un ambiente vicino a quello del server di produzione. Se poi aggiungi buone pratiche SEO, backup regolari, e un occhio attento alle versioni di PHP e database, avrai in mano non solo un ambiente di test ma un vero laboratorio digitale per i tuoi progetti.

Lavorare in locale non è soltanto più comodo: è anche il modo migliore per crescere come sviluppatore e gestire siti complessi in totale sicurezza. Infine, l’utilizzo di temi come Blocksy e dei suoi child themes ti permette di personalizzare il sito con facilità, mantenendo sempre aggiornato il core senza rischi per le modifiche estetiche.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *